Challenge Overview
Challenge Objectives
-
Create an extension in Visual Studio Code
-
Extension provides a command to log the user in to Topcoder
-
User can invoke another command to view open challenges on the Topcoder platform
Project Background
-
Topcoder is aiming to create an extension in Visual Studio Code and package in Atom
-
The extension / package is meant to closely integrate the Topcoder platform with the text editors, to allow the user to perform actions from within the editor, without having to open a browser.
Technology Stack
-
Javascript or Typescript. Either is fine
Code access
This is the first content in the series. There is no source code to share
Individual requirements
Create an extension in Visual Studio Code that will automatically log the user in to Topcoder when the editor is launched (Major Requirement)
-
Create an extension in Visual Studio Code
-
The extension will have a command that allows the user to login to Topcoder.
-
Expose configurations that the user can set, namely their username and password, which will be read and used to log the user in.
-
Use the topcoder-api-utils module as reference for authorization and store the received token in the global state. You don’t have to use the module and can instead reuse the logic to connect directly.
Use Command based Activation Event to view open challenges in the Topcoder Platform (Major Requirement)
-
The same extension must support a command that allows the user to view open challenges on the Topcoder Platform. If the user is not logged in, automatically log the user in based on the configuration set. Make sure that you give informative messages to the user during loading, so that they don’t feel that the action is stuck
-
Only display contests that are active.
-
You will use the challenge api to retrieve the challenges. The API endpoint is available here and you can see that the correct filter is also used to view only active contests. While the API responds without authorization, you need to pass the token used during login and use Bearer Authorization.
-
Provide a tabular layout when displaying the contests. Display the challenge name, challenge type, number of registrants, prizes and current phase. You can display them in markdown too.
Deployment guide and validation document
Provide a deployment guide with instructions on how to deploy / work with the extension locally. Also provide information on the configuration exposed by the extension and the commands supported.
Important Notes
-
You don’t have to show details other than the title and the challenge prizes when displaying the list of open challenges.
-
Prefix all commands supported by the extension with “Topcoder : ”.
-
Provide a good user experience, especially if there is an error. Display messages to the user letting them know the cause of the error. For example, if the login failed, notify the user by displaying a message. If the challenge api call fails, let the user know. Handle error scenarios well.
-
Tests are in scope for this contest. Reviewers will use the dedicated Testing section in the review scorecard to list issues related to testing. Reviewers will not consider this under Major or Minor requirements in the scorecard.
Final Submission Guidelines
Zip your solution and upload it to Topcoder.