Key Information

Register
Submit
The challenge is finished.

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)
The list of events will be an array of "event" type objects that comprise:
  • Name of event
  • Timestamp of event (can be an long int, representing milliseconds since epoch)
  • JSON text of the contents of the event
The list of scores will be an array of "score" type objects that comprise:
  • 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 array

Storage

All data will be stored in MongoDB

Deployment

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/CD

Unit 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
Deployment guide and validation document
  • 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.
What to submit
  • 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


Final Submission Guidelines

Please see above

ELIGIBLE EVENTS:

2021 Topcoder(R) Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30147022