Register
Submit a solution
The challenge is finished.

Challenge Overview

The goal of this challenge is to improve the Search UI and Functionality.

Challenge Requirements

 

  • Provided in challenge forums a JQuery Search Filtering Plugin. You will use it in the current search bar.

    • The plugin search bar look and feel should remain as currently displayed.

    • Remove the categories drop down list.

    • The plugin suggestion drop down styling should match the Myyna web application look and feel.

    • The tag should use the current Myyna web application colors.

  • When search bar get focused, then getKeyList function is invoked to get list of available keys, the key suggestions should be :

    • The key suggestion list should be :

      • Person

        • name

        • username

      • Pin

        • pin type

        • description

        • time

        • creator

      • Board

        • name

        • description

        • creator

        • time

      • Category

        • name

        • description

        • creator

        • time

      • PDS Type

        • LROC

        • PPI

      • PDS Metadata

        • List all metadata of both LROC and PPI.

    • keyword searching

      • User can type free text, when hit search it will become ‘search : <text>’, which indicate a keyword searching.

      • The keyword searching will use the Mongo text search feature.

  • Create a new backend route for key/value suggestions.

    • Create a new endpoint to get list of keys

      • It’s up to you to hardcode the key list suggestions in JS frontend or pass it from backend.

    • Create a new endpoint to get list of values of the selected key

      • The logic will be retrieving the available values from corresponding collection records from mongodb.

  • Update search.js backend logic as follow :

    • The search tags should be passed as key=value query strings.

    • Update the search backend logic to use the key/value query strings to construct the criteria for Collection.Find(). Each key will correspond to specific field/metadata in the database, if the key is keyword search “search={text}” then you will use $text for mongo searching.

    • It should include pagination parameters.

      • Pagination should be enforced, the page offset is 0 and page size should be 200 by default.

  • The page should not submit the page to perform searching, it should be ajax searching.

    • When user make a search in other pages (not in /search) the user should be taken to /search page then ajax call will be done to get json results. If user already in /search page we do ajax call right away.

  • The search result page will display same results with following notes :

    • Add new tab (people) that will render people matches the search.

      • ���The widgets will use user photo as image, there will be follow button, icon for number of followers, and icon for number of pins made by user.

      • The tab will work like other tabs.

    • PDS tab will render both PPI and LROC pins results.

General Notes

  • Update readme with deployment and configuration information.

  • All UI changes should be responsive for tablet and mobile views.

  • Update data generator if needed.

    • data generator include the pds data generators as well.

Gitlab Access

 



Final Submission Guidelines

Deliverable

  • Patch file of changes.

  • Updated readme file with deployment and verification steps.

  • Text file for reviewers.

ELIGIBLE EVENTS:

2016 TopCoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30051082