Register
Submit a solution
The challenge is finished.

Challenge Overview

 

  • Target environment: Rally, VSCode Extension

  • Basic Requirements: Merge auto time tracking to the main development branch and implement further enhancements as per the client’s request.

Now Rally is renamed to CA Agile Central, but we still use Rally as the name in this specification.

Project Background

Our clients want to build a VSCode extension to connect the code editing workspace to a Rally workspace. This goal will enable developers a fast and easy way to manage their work items in Rally; specifically, the extension should be able to select product backlog items (PBI) to work on and update specific fields to help track the work in progress.

Technology Stack

  • VSCode extension SDK

  • Rally API

  • NodeJS

  • Typescript

  • Angular 7

Individual requirements

We ran two challenges in parallel to implement

 

The source code of these two branches are hosted in two different branches

 

In this challenge, we need to merge the code of two branches, fix the existing bugs and implement further enhancements.

 

1. Merge the code of two branches

In this challenge, you need to merge the code of the two branches

 

After the merge, all the existing functionalities should be kept and no new bugs should be introduced.

 

The existing functionalities include

  • Add/Delete tasks on the VSCode side.

  • Save edit to the remote Rally workspace

  • Sync update from the remote Rally workspace

  • Prompting the dialog to resolve conflicts if there are conflicts.

  • Auto time tracking by monitoring the keyboard/mouse events

  • Expose the link to Rally

  • Store Rally API key to .git/config

  • and other trivial details

 

You should look through the spec of the two previous challenges to check more details. If there is anything not clear to you, please feel free to post a question in the forum for clarification. Any assumption without approval is not acceptable.

 

2. Further enhancements of the auto time tracking

The basic idea of the auto time tracking is, if the user switched to a backlog in the VSCode Rally editor, then the auto time tracking starts. In the meantime, the VSCode Rally editor hooks the keyboard/mouse events, if the user is AFK (away from keyboard, means not operating on the keyboard/mouse event) in 5 seconds (the value can be configurable), then we think the user is not active and the auto time tracking stops. Whenever the user comes back to the mouse and keyboard, the auto time tracking restarts.

 

Here is the screencast of the auto time tracking demo

https://monosnap.com/file/ZYxfHB2ab982088HCVSWXlLCwLpfBI

 

In this challenge, we need to enhance the auto time tracking

 
  1. The time should be tracked in minutes, not seconds. We should configure 10 minutes as the dormant time.

  2. The auto time tracking should stop no matter the user is AFK or the VSCode window is inactive.

  3. We should also pop up a question after returning to the keyboard if the last dormant period should be added to the current story working time.

  4. If we select a backlog in the VSCode editor, then switch to the code editor to write the code, the time should be also tracked as the working time of the backlog.

  5. You should add a status in the footer bar label to denote the current working backlog, and if the auto time tracking is working.

 

The style of the status can be shown as the below image. For example, if the user selects a backlog (US10 User Story 1), then switch to the code editor to write the code, then the auto time tracking is working, and the status should be

  • [US10] UserStoryName (time-tracking)

 

If the user is AFK more than 10 minutes, then auto time tracking stops, and the status should be

  • [US10] UserStoryName

On Rally workspace, you can add a new task or delete the existing task. The client wants to do the same on the VSCode side.

 

To reviewers

You will need to set up your own Rally workspace to review. Competitors won’t share their Rally credentials or API keys with you.

 

Notes

  • Login to your Rally workspace via https://rally1.rallydev.com/

  • If you don’t have a Rally account, you need to register it via this link. You might need to wait 24 hours - 48 hours to get the trial activation.

  • We have a long term Rally account in case you don’t have your own Rally account, if you need one, please post your email ID in the forum and I will email it to you.

  • Once you logged in, prepare some demo Backlogs for testing.

  • If you have any questions or feel anything is unclear, feel free to ask in the forum, don’t make assumptions without getting confirmation.

 

Codebase

Please work on the dev branch of https://gitlab.com/vscode-rally/vscode-rally

The target commit SHA is 270d17ca84615b5f6fc89ab39bcb729370377ec9

You can grant yourself access by the link provided in the forum.



Final Submission Guidelines

Please submit the following items in a zip archive.

 

- The patch against the target repo and commit SHA. Please be sure to test your patch is valid.

- A detailed README.md to show how to deploy and run your extension in the VSCode.

- A separate document to describe how to set up your Rally workspace, including how to add backlogs, tasks, enable “Actual” field, report actual working time.

- A video to verify your VSCode extension meets all requirements. If you are not comfortable with spoken English you may feel free to annotate your video with text.

ELIGIBLE EVENTS:

Topcoder Open 2019

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30083323