Register
Submit a solution
The challenge is finished.

Challenge Overview

We'd like to create a way to populate another challenge-listing index which contains the necessary information for challenge listing api.

General Requirements

1. Review ES - Challenges Index - New Data Model - Index Field Analysis.pdf file (attached in forum) to understand the required information for challenge-listing index.
green cells in H column (Required In challenge-listing index) are the needed information for challenge-listing index.

2.  Create a new ChallengeListingData class similar as ChallengeData class, which will define/use other POJOs to represents the document model in ElasticSearch.

3. Create a new ChallengeListingFeederDAO class similar as ChallengeFeederDAO class, which will do sql querying to get the necessary information to fill ChallengeListingData

4. Create a new ChallengeListingFeederManager class similar as ChallengeFeederManager class, which will use methods  in ChallengeListingFeederDAO class and generate the final ChallengeListingData object and push the data into ElasticSearch

5. Create a new LoadChangedChallengeListingJob class similar as LoadChallengedChallengesJob, which will running periodically to see the changed challenges and trying to push the new data into ElasticSearch.

Local Setup

- Please follow https://github.com/appirio-tech/tc-common-tutorials/tree/master/docker/direct-app to run the dependent services, like informix, redis, direct app and elasticsearch.
- Clone the codebase from github and build it.
- Run it by using local/run.sh
- Verification
-- Create a challenge in direct, see if the data is populated properly in Elasticsearch
-- Edit a challenge in direct, see if the data is populated properly in Elasticsearch
 

Final Submission Guidelines

- Code Changes
- Verification Steps
- Winner Responsiblity: Create the Pull Request For Merging

ELIGIBLE EVENTS:

2018 Topcoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30065165