Challenge Overview

Project Overview

NASA needs your help building an enterprise search portal. NASA & Topcoder have completed the design and frontend code for a search interface that is intuitive for beginner to advanced users which allows users to search against NASA intranet as well as public internet data sets.

 

As part of this project, we are integrating the search engine (Solr Cloud) which will serve as a backend to the Enterprise Search User Interface and seek to expand the capabilities of the existing application.

 

Challenge Details

This challenge will be to implement the suggestions of the winning submission of an Idea Generation challenge and integrate the recommendation engine with the rest of the application.

 

You can chose to directly enhance the SolrCloud instance by creating a plugin or by some other means or you can implement the recommendation engine in Nodejs just before / after it interfaces with SolrCloud. Just make sure that it is a module of its own. NASA should be able to reuse the module in any of their other projects. Best to document this module properly and also describe how this “module” was integrated into the current app.

 

We already have developed the application that integrates the front end with the Solr indexing engine. All features have not been implemented yet and you can check out the existing Deployment Guide to determine which features currently exist.

 

We also ran an Idea Generation challenge to get ideas from the community to harness the capabilities of machine learning to implement a recommendation engine with the capabilities:

  1. To recommend results based on what URL’s were clicked on by other users for a specific query

  2. Recommend results based on what URL’s were clicked on by other users for a specific query based on the location the user is from.

  3. Recommend results based on what URL’s other users clicked on for a specific query based on what other users clicked on with similar query profiles to the current user.

  4. Recommend queries for users based on what other users with the same location and job function search for.

 

You need to implement the suggestions received as part of this challenge. Note that you are allowed to alter the Solr index created as long as you document how to alter this / provide a script that can be used to alter it. It could be difficult to implement the recommendation system without appending some metadata to the index.

 

Points to Note

  1. You are not building the prototype nor are you creating an application to integrate the Front End Prototype with the Solr Indexing engine. These have already been carried out and you can get the existing code from the links section below.

  2. Make sure that the existing functionalities of the application are still working. You can check out the Deployment Guide’s Verification section to know more about the existing features.

  3. Update the existing Deployment Guide by providing the Verification Steps for the four points described above in this challenge. Kindly do not provide another Deployment Guide.

 

Links Provided

  1. Front End Prototype - https://github.com/NASA-Tournament-Lab/Search-User-Interface

  2. Front End Prototype (Hosted) - https://demo.topcoder.com/OPM/NSP/prototype/index.html

  3. Application Integration Front end with Solr - https://github.com/NASA-Tournament-Lab/NTL-NASA-Search-Portal/tree/30051501-Recommendation_Engine/Source%20Code. Note that we have selected the branch for you (30051501-Recommendation_Engine). You will be working off this branch only. Create a fork of the application and checkout the selected branch.

  4. The winning submission of the SolrCloud Recommendation engine Idea Generation challenge.

  5. The Docker instance containing the SolrCloud instance.

 

Third Party Code / Libraries

Open source code is encouraged. All third party code / libraries must be open source and you must include the license in your submission. The license must allow us to modify/re-package the code as necessary. If you have any questions regarding this, please post in the forums. Submissions that include third party code without the proper license information will be disqualified if the third party code is found to be unusable due to license restrictions.

 



Final Submission Guidelines

  1. Create a fork of the existing application and work off the 30051501-Recommendation_Engine branch.

  2. Video is not required.

  3. Make sure that you update the Verification section of the Deployment Guide with the new features created as part of this challenge.

  4. Ensure that your recommendation engine is not tightly coupled with the rest of the application. It should be easy for NASA to take your recommendation engine and use it elsewhere too. Best that you wrap it in an API / plugin or library for reuse

  5. Submit the updated application as a zip file in the Submit and Review tool for this challenge.

  6. The winning participant will be asked to create a Pull Request with their submission to the 30051501-Recommendation_Engine branch.

ELIGIBLE EVENTS:

2016 TopCoder(R) Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30051501