Challenge Overview
Challenge Objectives
-
To upload the current workspace as a submission to a Topcoder contest
-
To fix a couple of minor issues with the extension
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
-
Typescript
Code access
You can find the code here. Use the develop branch as your base branch
Individual requirements
To upload the current workspace as a submission to a Topcoder contest through our Topcoder Workflow extension (Major Requirement)
-
Assume each workspace will have a .topcoderrc file. This file will contain json. At the moment, the only key this file will have is “challengeId”. The value of this key will be the Topcoder challenge id (Look at the url for this contest - it should be https://www.topcoder.com/challenges/${a_number}. The number here is the challenge id.
-
Once the user has completed their code changes and they wish to submit for the contest, they will invoke the “Topcoder: Upload submission” command, which you will create as part of this contest.
-
This command will zip the current workspace and upload it to Topcoder, for the challenge with the id specified in the .topcoderrc file.
-
The command should NOT zip the files specified in the .gitignore file present in the workspace, if any.
-
If the .topcoderrc file is itself not in the .gitignore file, then it will be part of the archive.
-
If the user has not configured the .topcoderrc file and they try to invoke the “Topcoder: Upload submission” command, display a message informing the user that “No .topcoderrc file detected in the current workspace”.
-
If the user is not logged in to Topcoder, the command will automatically log the user in, before carrying out the upload action.
-
Note that the command can be invoked from any sub folder too. The command needs to zip the current workspace and not the sub folder from where the command was invoked.
Fix multiple issues with the existing extension (Minor requirement)
-
When you view the list of open challenges, scroll to the bottom. There you see a lot of empty space. Remove it. The page should scroll only up to the last contest row.
-
Currently, the extension exposes multiple configurations, that the user can change in the extension settings. Update this so that only the username and password can be changed by the user. The others will be constants and not be exposed / configurable.
-
Change the title of page that displays the open challenges. Right now, it reads “Preview viewOpenChallenges.md”. Change it so that it reads “Topcoder: Open challenges”.
Deployment guide and validation document
Update the existing deployment guide as needed based on the changes carried out for this contest.
Important Notes
-
Kindly follow existing conventions used in the extension
-
Update the tests and add new tests for the extension as relevant for this contest. Reviewers need to use the dedicated section on tests in the review scorecard to consider issues related to tests.
-
Ensure there are no typescript lint errors in your code.
Final Submission Guidelines
Kindly upload a git patch of your changes. Please ensure that the patch can be applied using the git apply patch command on the develop branch.