Challenge Overview
We'd like to create a way to populate another challenge-detail index which contains the necessary information for challenge detail 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-detail index.
green cells in I column (Required In challenge-detail index) are the needed information for challenge-detail index.
2. Create a new ChallengeDetailData class similar as ChallengeData class, which will define/use other POJOs to represents the document model in ElasticSearch. Please properly following the naming as in PDF file
3. Create a new ChallengeDetailFeederDAO class similar as ChallengeFeederDAO class, which will do sql querying to get the necessary information to fill ChallengeDetailData
4. Create a new ChallengeDetailFeederManager class similar as ChallengeFeederManager class, which will use methods in ChallengeDetailFeederDAO class and generate the final ChallengeDetailData object and push the data into ElasticSearch
5. Create a new LoadChangedChallengeDetailJob 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-detail index.
green cells in I column (Required In challenge-detail index) are the needed information for challenge-detail index.
2. Create a new ChallengeDetailData class similar as ChallengeData class, which will define/use other POJOs to represents the document model in ElasticSearch. Please properly following the naming as in PDF file
3. Create a new ChallengeDetailFeederDAO class similar as ChallengeFeederDAO class, which will do sql querying to get the necessary information to fill ChallengeDetailData
4. Create a new ChallengeDetailFeederManager class similar as ChallengeFeederManager class, which will use methods in ChallengeDetailFeederDAO class and generate the final ChallengeDetailData object and push the data into ElasticSearch
5. Create a new LoadChangedChallengeDetailJob 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