Key Information

Register
Submit
The challenge is finished.

Challenge Overview

Competition Task Overview

Currently, projects can be filtered using the following criteria: status, name & type. We need to support additional search criteria for project search - keyword search.

In a previous challenge, we have implemented the new keyword search feature to replace project name search with keyword search. Keyword should be searched across multiple fields:
- name
- details.utm.code (details is a JSON field)
- description

The solution from the previous challenge works however we feel the performance is not good enough, so in this challenge we'd like to implement the same feature(s) again using a different approach. We'd like to utilize text search in postgres by using an index, this could be helpful: https://www.postgresql.org/docs/9.5/static/textsearch-tables.html

The API / performance requirements remain the same (described below as well).

API Changes
As part of this project we want you to support an additional filter criteria for **GET /projects ** API.
Eg. ```GET /projects/?filter=keyword%3dtest``` would search for the keyword 'test' in name, details.utm.code & description. It should return results where the keyword exists in **any** of those fields.

Performance
Performance of GET /projects api call is of utmost importance. Please use appropriate DB index for fields listed above.

Testing
Existing unit tests must be maintained, and new unit tests should be added for the new api / search fields.

Timeline
Pay attention to the shortened timeline and make sure you don't miss the deadlines.

Technology Overview

NodeJS
REST



Final Submission Guidelines

Submission Deliverables

Below is an overview of the deliverables:
1. Full code that covers all requirements (based on our repo structure)
2. A detailed readme in markdown format covering how to configure, run and verify your submission.
3. Winner will be asked to send a PR to our project repo on GitHub

Final Submission

For each member, the final submission should be uploaded via the challenge detail page on topcoder.com.

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30055787