IBM - SiBM Watson Pattern Explorer - Flow Configuration POC

Key Information

Register
Submit
The challenge is finished.

Challenge Overview

 

System Description

The goal is to produce a proof of concept pattern explorer application using Node RED technology. The application should take in data from the Watson Engagement Advisor Instance, run it through a series of processing steps and provide access to the processed data.

Competition Task Overview

In this contest we will build a POC module that will start multiple nodeRED instances deploy sample flows to the started instances. The application will be built using nodejs/express stack.

The module should support the following:
---Starting a new nodeRED instance
---Retrieve current flow configuration
---Deploying flow to the instance

Starting A nodeRED Instance

Implement a simple interface for starting/stopping a nodeRED instance. See nodeRED documentation for exact details. Persist the instance data to database, in the following format:

Instance: {
    instanceID:string,
    userID:string,
    baseUrl:string,
    userDirectory:string
    timestamp:DateTime
}

Module will take userID and callback as a parameter. If there isn't an active instance for that user, start a new one. Otherwise just trigger the callback with active instance info.

Get The Current Flow Configuration

Take an instance ID and return the configuration for the currently deployed flow. 

Deploy A New Flow

Take flow configuration (json string) and instance ID and deploy the flow to the active instance. See nodeRED documentation for exact details. Provide success and error callbacks.

Create A New Flow

Create a simple web page where the user can create and save a new flow. If there is no active instance for that user, start a new one. The page should contain the follwing:
---flow editor displayed in an iframe
---form fields for inputting flow name

When the user designs the flow and fills in the flow name, save the flow to database, with the following schema

Flow:{
    Name:string,
    FlowConfig:string
}

On success, stop the nodeRED instance.

 

Persistence

Use cloudant database instance to persist all data. To connect to the cloudant instance use one of the supported nodejs libraries: https://docs.cloudant.com/libraries.html#node.js  

Verification

Provide verification for creating and saving new flow. Also, create a separate page where the user can select one of the available flows and deploy to his instance. Verify that multiple users can use the module (each with separate nodeRED instances). The current user ID can be just a request parameter, there is no need to build authentication for now.

Technology overview

---AnchorAnchorNodejs: https://nodejs.org
---Node RED: http://nodered.org
---Cloudant: https://cloudant.com
---cf-cloudant: http://flows.nodered.org/node/node-red-node-cf-cloudant



Final Submission Guidelines

Submit a zip file with all the deliverables.

ELIGIBLE EVENTS:

2016 TopCoder(R) Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30051446