Challenge Overview

Background:
The Watson Ecosystem is at the forefront of cognitive computing, allowing businesses to embed transformative question/answering capabilities within their applications. The Watson Ecosystem is growing fast and as the number of partners and the variety of domains grows, the Ecosystem needs scalable ways to manage these partners. One of the ways the Ecosystem plans on managing the partners it works with is through a Dashboard that allows the user to aggregate information about Ecosystem partners in a customizable way.

This application will implement the Web Application for the Ecosystem Dashboard. In particular, the Ecosystem envisions the default view to be a Visualization, such as a heat map, where each UI element in the Visualization represents a different partner and a visual cue to distinguish between different partners is based on a customizable statistic/metric. The application should provide filters that change the perspective of the Visualization and provide a mechanism to customize the view for a given user (i.e. user profile or save function). Other than that, the target audience for this application will be Watson Ecosystem engineers and managers looking to make decisions based on aggregate trends. To that effect, the UI/UX should be simple, intuitive but should also provide powerful functionality for uncovering trends.

Objective:
The purpose of this competition is to implement new features into the application, or to fix some issues.

The Backend of the application is a Node.js application. It provides the API for the Frontend in JSON format.

The Frontend of the application is an Angular application.

For the API changes, the expectation is:

  1. apply the changes to the Mock API and
  2. apply the changes to the frontend to communicate with the Mock API backend

Requirements:

Below are the requirements:

  1. Changes to /dashboard/heatmap/partners API
    1. remove partners.projects.companySize
    2. remove partners.projects.performance
    3. add partners.companyRevenueLow
    4. add partners.companyRevenueHigh
    5. add partners.watsonRevenue
    6. add partners.status
  2. Changes to /dashboard/partnersummary/historical?partnerName=xxx&projectName=xxx&dateRange=xxx API
    1. remove partnersummary.metrics[i].companySize
    2. remove partnersummary.metrics[i].performance
    3. add partnersummary.metrics[i].accuracy
    4. add partnersummary.metrics[i].numQuestions
  3. Changes to /partnernews?partnerName=xxx
    1. change partnernews[i].data to partnernews[i].date
  4. Updates to the 'Size' field on the first page. The 'Size' field should have the following options:
    1. Number of Customers
    2. Number of Employees
    3. Watson Revenue
    4. Company Revenue (average)
    5. Company Revenue (high)
    6. Company Revenue (low)
  5. Updates on the 'Color' field. The 'Color' field should have the following options:
    1. Precision
    2. Recall
    3. Accuracy
  6. Filtering should also be based on the status of the partner.
    1. There are 4 stages: "Development","Commercial","Market","Production". Please add this as another field (it should be synced up)
  7. Help buttons plus descriptions (See attached file: first_page_help_button.png)
    1. The filters icon should have a popup describing what it does
    2. Each of the buttons on the right should have a popup describing how they represent the information
  8. Revenue Filter should be in log scale (See attached file: Screen Shot 2015-02-11 at 1.59.52 PM.png)
    1. If you look at the screenshot, the revenue starts at 0M and then goes linearly (by increments of 1M) up to 100M. In reality, we need closer to a log scale where the dollar differential for one increment increases as you go to the right of the scale (rather than being a constant 1 million as it is right now). The same holds true for the number of customers and number of employees
  9. Partner Summary Metadata should include additional fields (See attached file: Screen Shot 2015-02-11 at 2.13.17 PM.png)
    1. The bar below should include these additional entries:
      1. Solution Architect
      2. Engagement Manager
      3. Recruitment Manager
      4. Partner Status (In Market, In Production, etc.)
  10. Default Behavior in the case of no experiment/revenue information
    1. In the case of a partner having no experiment information (i.e. they have no precision/recall numbers), provide a way to represent them on the dashboard

See the forum attachments for more clarifications.



Final Submission Guidelines

Submission Deliverables
A complete list of deliverables can be viewed in the TopCoder Assembly competition Tutorial.

  • Complete code as required in the Assembly Specification.
  • A complete and detailed deployment documented explaining how to deploy the application including configuration information.
  • Unit Tests to verify your application successfully meets the requirements of the application (only functional tests).


Final Submission

ELIGIBLE EVENTS:

2015 topcoder Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30049362