Challenge Overview
Important! This is a fast challenge! All phases are shorter than usual. Make sure you don’t miss any deadline.
Challenge Objectives
-
Improve the V5 Challenge API so we can start integrating it with our front end apps.
Tech Stack
-
Node.js
-
Swagger
-
DynamoDB
-
ElasticSearch
Project Background
In this series of challenges, we will build the version 5 (V5) of the challenge API.
Code Access
Challenge API
Repo: https://github.com/topcoder-platform/challenge-api
Branch: develop
Challenge Processor ES
Repo: https://github.com/topcoder-platform/challenge-processor-es
Branch: develop
You may also have to run the Resources API locally https://github.com/topcoder-platform/resources-api (develop branch)
Detailed requirements
As part of this challenge, you need to make the following changes on the challenge API and the ES processor:
-
Add a new property named abbreviation in the ChallengeType model. This is a required string.
-
Add a new property named legacyId in the ChallengeType model. This is an optional integer.
-
Add a new property named numOfSubmissions in the Challenge model. This will only exist in ES and won’t be saved in DynamoDB. The default value will be 0. Update the ES processor to listen on the submission.notification.create as well as the submission.notifiaction.delete topics and update the numOfSubmissions property accordingly.
-
Add a new property named numOfRegistrants in the Challenge model. This will only exist in ES and won’t be saved in DynamoDB. The default value will be 0. Update the ES processor to listen on the challenge.action.resource.create as well as the challenge.action.resource.delete topics and update the numOfRegistrants property accordingly.
-
Make sure to update the Swagger as well as the POSTMAN collection to reflect all changes.
-
Update existing tests to pass and make sure to cover all new code with tests.
Should you have any questions, feel free to ask on the challenge forum!
What to Submit
Submit a git patch file for the latest commit in the develop branch of each repo.
Make sure to mention the exact commit you used so we can apply your patch without issues.