[ 72hrs ] Topcoder Member Profile - Member Skills Fixes Part 1

Register
Submit a solution
The challenge is finished.

Challenge Overview

Project Background

Topcoder Member Service is the crux of member management, which provides microservices for member profile, profile traits, stats, financial, skills and external accounts. 

Technology Stack

  • Java

  • Docker

Code Access

The work is to be done in the Topcoder - Member Service repo (feature-member-skills branch).

Individual requirements

  • In this challenge we will cover the following:
    • Save Skills to ES along with DynamoDB: Right now, the skills are saved to DynamoDB only. We are going to keep the current logic of GET and POST, but add logic around current implementation to save to ES as below (In case of doubts, please share in forum)
      • When doing GET `members/{handle}/skills`, we will fetch the Skills from ES, if available else we fetch from DynamoDB. Here, we also need to look at `MemberAggregatedSkills` in DynamoDB, if we have skills missing in ES, which are found in `MemberAggregatedSkills` then we need to sync them to ES before returning GET result so next call to GET, we get latest info from ES. 
      • When doing PATCH `members/{handle}/skills`, we will udpate DynamoDB first using current logic and then update ES. Here, also we look for skills in `MemberAggregatedSkills`, and add them along in ES update. 
      • Make sure Skills in ES are stored in separate index as shared in forum. Also make sure you tag sources right way. CHALLENGE is when skills comes from `MemberAggregatedSkills`, 'USER_ENTERED' when user is adding them. Example ES curl shared in forums which has example of both CHALLENGE and USER_ENTERED.
    • POSTMAN changes are in scope. 
    • Note: We have 2 tables in DynamoDB - `MemberEnteredSkills` (this is updated by members - this is tag source USER_ENTERED) and `MemberAggregatedSkills` (this is updated by internal systems when members win challenges - this is tag source CHALLENGE). 

Important Notes

  • You should follow the best practices established in the repository:
  • Do not break existing tests. 
  • Do not raise a PR until a winner is declared. 
  • Reviewers - Please verify each submission with fresh local setup, as ES and DynamoDB changes from one submission can carry forward to other submission. 


Should you have any doubts, do not hesitate to ask for clarifications in the challenge forum!



Final Submission Guidelines

  • [REQUIRED] Submit a git patch against `feature-member-skills` repo. 

  • [REQUIRED] Submit all updated scripts and verification guide so reviewers can run and verify your submission locally. 

  • Make sure to mention the exact commits so we can apply your patch file.

  • The winner must create a PR against our repos. 

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30100626