Register
Submit a solution
The challenge is finished.

Challenge Overview

Challenge objective

  • Fix bugs in Topcoder CLI, implement new features and enhance tests

Project background

  • Topcoder is creating a command line tool to help members interact with Topcoder platform for various use cases like submitting the current directory to a challenge, retrieving submissions and artifacts etc...

Technology Stack

  • Node.js 10.x

  • Javascript

Challenge Assets

  • Source code of existing Topcoder CLI tool can be found here. Please refer to the latest commit in develop branch

  • Auth0 credentials for implementing M2M support is shared in the challenge forum which will be accessible after registration

  • User credentials to access development environment is shared in the challenge forum as well

Individual Requirements

Complete M2M support

  • In the CLI, there is a service to do M2M Authentication but it is not integrated with `submit` command yet and it needs to be integrated with the commands which we will be implementing as well.

  • Right now, submit command can be executed only with user credentials, we should be able to submit using M2M credentials as well provided that `memberId` parameter is passed via .topcoderrc file or as a CLI parameter

  • You could use any challenge in dev environment to make a submission

Support to Fetch Submissions

  • Please refer https://github.com/topcoder-platform/topcoder-cli/issues/21

  • Command to fetch submissions will be executed as `topcoder fetch-submissions`

  • Option `--latest` will be used to fetch only the latest submission of each member

  • Option `--userId` will be used to fetch only the submission of that particular user id

  • Option `--challengeId` will specify from which challenge we will need to fetch the submission

  • Authentication related options like username, password, m2m should be copied here similar to submit command

  • Create a directory `${challengeId}-submissions` and download each submission within that directory

Support to fetch submission artifacts

  • Please refer https://github.com/topcoder-platform/topcoder-cli/issues/22

  • Command to fetch submissions will be executed as `topcoder fetch-artifacts` 

  • Authentication related options like username, password, m2m should be copied here similar to submit command

  • Create a directory `submission-${submissionId}-artifacts` and download the artifacts within it.

Code refactoring

  • Refactor the authentication functions in such a way that every command which need to do user / M2M authentication can use it. E.g. Getting the instance of Submission Api client based on the credentials (User / M2M) should be moved to a common function so that every function relying on Submission Api client instance can directly invoke it to get the instance and start the action

  • Every function in the JS file (except tests for now) should have comments following JSDOC style

  • Helper file should have functions only which is used across multiple services / commands. If it’s not used in multiple functions, please move it to the appropriate service or command file.

Important Notes:

  • Submission, Review, Appeals timeline for this challenge shorter than usual. Please pay attention to the shortened timelines

  • Please ensure that there are no lint errors

  • If you have any doubts, Please feel free to post it in the forum. We will be happy to resolve your queries as soon as possible.



Final Submission Guidelines

  • Create a git patch file against the latest commit in `develop` branch. Please prepare git patch file using git CLI only. Please make sure to test your patch file before submitting.

  • Create a Validation document using any format like Word, Markdown, txt file

  • Zip the patch file and Validation document and submit the zip file using the Submit link

  • After submitting, please ensure that you are able to download your submission from Online Review

ELIGIBLE EVENTS:

2020 Topcoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30108352