Challenge Overview
Project Overview
This challenge will build a small REST API that will save output from the submission validator we created here: www.topcoder.com/challenges/30140528, along with some basic scorecard data.
We will build this new REST API in Swagger, with generated code targeting Node.
Technology
- Swagger
- Node
Requirements
We are going to build the REST API to target Swagger, allowing us to have proper documentation of the API. Please ensure that we can generate the code based on the Swagger using Swagger Codegen.The fully documented Swagger file, with in-line documentation and example, is a major requirement for this challenge.
Scoring
The API will allow for creating a new scorecard for a submission. The scorecard will have these attributes:- Submission ID (UUID)
- Scorecard ID (generated UUID)
- List of events (see below)
- List of scores (see below)
- Name of event
- Timestamp of event (can be an long int, representing milliseconds since epoch)
- JSON text of the contents of the event
- Score identifier (string, like "build", "deployment", etc...)
- Numeric score value (between 0 and 1)
REST API
The REST API should allow for basic CRUD functionality, and should allow for partial score / event management as well. For instance, we will want to add events to the scorecard after it's first created, so there should be an API for adding and deleting events, given the event information and a scorecard ID. The same goes for the scores arrayStorage
All data will be stored in MongoDBDeployment
We can target local deployment for this challenge. Please ensure you target the latest stable version of MongoDB.Configuration
All configuration should be done through environmental variables so that we can easily support CI/CDUnit tests
Unit tests are required for this challenge. Please target coverage levels of at least 95%Scorecard Aid:
Judging Criteria- Major requirements are a working swagger file and generated API
- Minor requirements is that the code is clean and easily deployable, that configuration is available in the environment, and that the unit tests are comprehensive
- You must provide a README.md that covers:
- How to deploy the code locally with MongoDB
- A comprehensive Validation.md that covers:
- How to validate the individual requirements. Please ensure that you address each major requirement clearly and directly, including both success *and* failure of a sample build. Providing some sample Postman files is recommended.
- The source code for the service and unit tests
- A README.md that covers deployment of the code
- A Validation.md that covers the details above