IBM Cognitive - Fun Challenge 2 - Translator

Key Information

The challenge is finished.
Show Deadlines

Challenge Overview

In this challenge, we will explore creating a custom application using Watson cognitive services and host it on Bluemix Platform. The custom application will utilize Tone Analyzer, Language Translator and Cloudant DB.

Challenge Prizes

This challenge is part of the Topcoder Cognitive Community challenge series.  There are no cash prizes.  You will win Cognitive points toward the leaderboard and the leader at the end of the challenge series wins an all expenses paid trip to TCO17.

Points payout breaks down as follows:
- 1st through 3rd place each get 500 points
- 4th through 10th place each get 350 points
- 11th place or lower each get 100 points


Initial Setup

1. If you have not already, go to http://cognitive.topcoder.com/  and click the Join the Topcoder Cognitive Community Button. Fill out the registration form and confirm your email address.
2. Go to the challenge forum and follow the thread on how to setup or extend your Bluemix trial account.  Doing so will give you a Bluemix account without requiring you to enter your credit card information. Even if you did this on the last challenge, do it again to extend your free trial further for this challenge.
3. Create a GitHub account if you don’t have one, and log in.


The application should provide an api endpoint that takes a string and a target language as input, and outputs 3 things:
- Translated text
- Tone of the source text
- Tone of the translated text

The application should store the generated inputs and outputs in a cloudant db and should provide be a very basic UI demonstrating the use of the deployed application.



1. Fork this Bluemix Starter Pack to your own GitHub Repo: https://github.com/topcoderinc/Topcoder-StarterPack_BluemixNode

2. Add Services for
  - Watson - Tone Analyzer
  - Watson - Language Translator
  - Data & Analytics - Cloudant NoSQL DB

3. Create a GET API request with 2 endpoints
  - /api/translate
  - /api/history

4. Implement the API defined in the attached Swagger doc.  You may use editor.swagger.io generators if you wish.  You also do not have to follow the API to the letter.  As long as the inputs and outputs work as required, you are welcome to make additions or corrections as you see fit.

5. Create a very simple UI that uses the above Api. A sample UI screenshot are provided below. UI is provided for demonstration only, and not necessarily to implement as is. Feel free to experiment with the UI.  You will not be critiqued on the design of your UI, only the functionality surfaced in it.

6. Follow the deployment instructions to deploy to your own Bluemix Account with the url format: tc-<yourhandle>-02translate.mybluemix.net

NOTE: If you’re creating this application in such a way as you have the frontend and backend as deployed separate applications to bluemix, your URLs should be as such:
UI:   tc-<yourhandle>-02translate.mybluemix.net
API: tc-<yourhandle>-02translateapi.mybluemix.net

Example UI
Example UI

Input Screen
 - Header JPG and PSD attached to this challenge.  Use them if you like, or make your own!
 - We recommend you use Bootstrap for UI, but you are not required
 - Show Translation History (not pictured above)
      - Show the last 5 translations (pulled from the cloudantdb)
      - Only show the input string, destination language, translated string.

Completed Translation Screen

The output screen layout is completely up to you.  You may show it on the same screen, or on a separate screen.  
The items we need to see are:

1. The input string
2. The selected language
3. The calculated input string tone
  - Only show the values for Social Tone (Openness, Conscientiousness, Extraversion, Agreeableness and Emotional Range)
  - You are welcome to get creative with how to show these values.
4. The translation destination language
5. The translated string
6. The calculated translation string tone
  - Only show the values for Social Tone (Openness, Conscientiousness, Extraversion, Agreeableness and Emotional Range)
  - You are welcome to get creative with how to show these values.

Final Submission Guidelines

Final Submission Guidelines
1. Deploy your application to your own Bluemix instance.
2. Upload a .zip containing your source code and a text file called bluemix-deployment.txt.  This .txt file should contain the URL defined above for us to test.
3. You can use any programming language to build the application, as long it’s supported by Bluemix, has an api, provides a UI, and meets the spec criteria.


Review Guidelines

Since this is a fun, educational challenge, the reviewer will be judging:
1. If your deployed URL works as defined.  The test case is:
  - Input a string
  - Select a language and click “Go”
  - Make sure all values requested are returned
  - Try another translation to see if their previous ended up in the history
2. Overall approach
  - Is your submission relatively clean (regardless of programming language)?
  - Were they able to break the UI with very basic testing?
  - Creativity applied to the UI


Topcoder will compensate members in accordance with our standard payment policies, unless otherwise specified in this challenge. For information on payment policies, setting up your profile to receive payments, and general payment questions, please refer to ‌Payment Policies and Instructions.


Final Review:

Community Review Board


User Sign-Off

ID: 30056541