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
- Verification Steps
- Winner Responsiblity: Create the Pull Request For Merging
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