Challenge Overview
Challenge Objectives
-
As part of this challenge, you will build the base code for our new V5 Challenge API.
-
You need to build all endpoints from the provided Swagger definition.
Tech Stack
-
Node.js
-
Express.js
-
AWS DynamoDB
Project Background
In this series of challenges, we will build the version 5 (V5) of the Challenge engine API.
Detailed requirements
You need to implement all endpoints from the provided Swagger definition (attached on the challenge forum).
You need to create POSTMAN tests for all endpoints (both positive and negative tests.
You also need to make the following changes (both in code and Swagger):
-
All GET endpoints that return challenge objects should populate the `type` property based on the `typeId`.
-
`challengeSettings` should be an optional array of objects with just `type` and `value` properties.
Important notes
-
Follow the best practices for creating Node.js APIs.
-
Update the provided Swagger file to reflect any changes made during development.
-
Both the Swagger file and your code should comply to our V5 API Standards (PDF attached on the challenge forum).
-
Entity IDs should be omitted in the bodies of POST/PUT/PATCH calls unless they’re referring to a child entity.
-
The `legacyId` property in the challenge object is optional. This will be probably filled through a processor and this API won’t have to worry about that at all.
-
Performance and stability are very critical.
Should you have any questions, feel free to ask on the challenge forum!
Documentation
You need to create a detailed README.md file that will describe the following:
-
Prerequisites.
-
Instructions on how to configure the API.
-
Instructions on how to run the API locally.
-
Instructions on how to run the API using an AWS DynamoDB.
-
Any other information that will be useful in future development.
What to Submit
Submit your source code in a zip file including a detailed README.md file (see the section above).