[Repost] Topcoder MM Processor | Automate deployments to Amazon S3

Key Information

Competition Timeline




Jun 11, 2019



Jun 15, 2019




Jun 11, 2019



Jun 15, 2019




Jun 15, 2019



Jun 17, 2019




Jun 17, 2019



Jun 18, 2019


Winners Announced

Jun 18, 2019


Challenge Overview

Based on the feedback received in the earlier contest, we have changed the specification and relaxed certain restrictions. Looking forward to your participation


Challenge Objectives

  • Set up an automated deployment process for deployment Topcoder’s Marathon Match specific processor. For now, deploy the source code to Amazon S3 only

  • Implement an AWS based automated deployment pipeline


Project Background

  • When Topcoder runs contests in the Marathon Match track, they involve a “processor” that takes care of executing the submissions uploaded by participants and creates a review for them based on the score received.

  • This process is currently carried out manually. The Copilot or PM for that contest set up the processor (fine tune the configurations specific for that contest), launch the processor, monitor the deployment and execution of the submissions etc.

  • This contest aims to automate this process


Technology Stack

  • Nodejs version 10

  • Amazon Web Services


Code access

We will share the processor source code in the contest forum. NO changes are expected to the processor source code, beside addition of new files necessary for automating the deployment.


Individual requirements

Setup CI / CD Runner to build a Dockerfile and update the configuration in the app (Major Requirement)

  • We will share a document in the contest forum that describes this requirement in detail

  • Following is a summary:

    • Using gitlab runner, build a docker image

    • The build is then pushed to dockerhub

    • Finally, we update a file in the repository with the image name


Deploy the source code from Gitlab to Amazon S3 (Major Requirement)

  • Once the first requirement is met, you will need to upload the source code to S3

  • We will share a document in the contest forum that describes this requirement in detail


Note that this isn't the final step. There are additional steps involved, which we will take up in subsequent contests.


Deployment guide and validation document

A well written deployment guide is essential for the success of your solution. Reviewers should be able to deploy your solution by following the deployment guide alone. Assume the end user is familiar with command line interface and can navigate through the AWS interface - your deployment steps need to be detailed. Images to guide the user are optional, but highly recommended. You can provide a markdown file or a Word document too.


Important Notes

  • The task to upload the source code to S3 should only happen if the pipeline, containing the lint check succeeds.

  • Do not use a docker based deployment since we are dealing with an app that itself processes Dockerfiles. We want to avoid a docker inside docker scenario.

  • The cloudformation template, if any, needs to set up the IAM roles / groups as needed.

  • Use the us-east-1 region for all AWS resources.

  • Reduce the number of manual steps needed to deploy.


A Note on the Review

  • We will be using the Subjective scorecard for this contest

  • Your score will be based on:

    • How easy it is to follow your deployment guide

    • How easy it is to deploy your solution

    • How much automated your solution is. We are looking for a solution with the least effort involved at our end to set it up.

  • You will get a passing score only if your solution can be used immediately (and meets the requirements) without requiring any major changes. Reviewers, note that getting a score more than or equal to 50 is a passing score. Your solution should be worth the prize money.

Final Submission Guidelines

Since you are not making any changes to the source code, you do not have to upload it. Instead, zip only those files needed to make this work along with your deployment guide. Your deployment guide and describe where to place these files in the source code (at the ROOT folder, under a specific folder etc).Upload your zip file to Topcoder.



Topcoder Open 2019


Final Review:

Community Review Board


User Sign-Off


ID: 30093178