Challenge Overview
Challenge Objectives
-
As part of this challenge you need to update the implementation for the Countries lookup endpoint.
-
You need to update the member settings to save the country information on the MemberProfile instead of the MemberProfileTraits table.
Project Background
We’re in the process of adding support to store more information about our users as traits in order to improve the overall user experience in our platform.
Technology Stack
-
Java 8
-
Maven 3
-
Docker and Docker Compose
-
DynamoDB
-
AWS
-
ElasticSearch
Code Access
Existing Code: https://github.com/appirio-tech/ap-member-microservice
Branches: dev
You will find a self registration link attached on the forum in case you don’t have access to the repo.
If the self registration link does not work for you, please request access by posting your Github username on the challenge forum.
Individual requirements
Currently, our legacy apps depend on the ISO3166 Angular module to populate the country information on the MemberProfile table in our legacy DBs.
Our new endpoints use a custom lookup table/endpoint to populate countries but the data is not the same with the data from ISO3166.
1. Update lookup endpoint/table
You need to update the lookup endpoint/table to store a pair of { country, competitionCountryCode } for each country where the competitionCountryCode is the Alpha-3 Code from ISO3166.
2. Update update profile/traits endpoints
You need to update the /members/{handle} and /members/{handle}/traits endpoints so we don’t save the country information in the MemberProfileTraits table but we save them in the MemberProfile.
You must save both the country and the competitionCountryCode.
Example:
country: Greece
competitionCountryCode: GRC
Make sure there are no parsing issues in the existing data in our DB after your changes.
Feel free to ask any questions on the challenge forum!
What to Submit
-
A git patch against the latest commit in the dev branch.
-
A verification document with detailed instructions on how to test locally as well as how to deploy the app to AWS.
The winner must create a pull request against the dev branch in our repo.