Challenge Overview
Challenge Objectives
-
As part of this challenge, you will build the base code for our new V5 Challenge Resource 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 and all related microservices to support it.
Detailed requirements
-
You need to implement all endpoints from the provided Swagger definition (attached on the challenge forum).
-
You need to create positive + negative POSTMAN tests for all endpoints.
-
You need to support M2M tokens. We should be able to call the API using both member JWT and M2M tokens.
-
You need to create unit and E2E tests.
Use this library for the M2M tokens https://github.com/appirio-tech/tc-core-library-js
Important notes
-
Currently, the /v5/challenges/{id} endpoint does not exist thus you need to mock it for this challenge. This can be a very simple express server with hardcoded challenge IDs. This needs to be provided as a separate project and you will not be scored for its code quality. It’s just for testing.
-
Both the Swagger file and your code should comply to our V5 API Standards (PDF attached on the challenge forum).
-
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).