Register
Submit a solution
The challenge is finished.

Challenge Overview

  • Target environment: Rally, VSCode Extension

  • Basic Requirements: Sync the VSCode Extension to Rally workspace

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

In the previous challenge, we designed and implemented a good UI. The UI is implemented in Angular 7.

 

In this challenge, we need to implement the backlog editing in the VSCode extension side as well as some further improvements that are requested by the client.

 

1. Sync editing to Rally workspace

Currently, all editing functionalities are the dummy. In this challenge, you are required to call WSAPI to sync all the editing to the remote Rally workspace.

The following items are in scope

  • Backlog Name

  • Status

  • Owner (Change it to a dropdown list to show all available owners)

  • Schedule State

  • Task Roll-UP

    • Est

    • To Do

    • Actual

  • Parent

  • Description

  • Notes

  • Discussions of Tasks
     

After pressing the “Save” button on the top right, the values of these items are saved to the Rally workspace. Note the WSAPI call is asynchronous, you need to handle all the exceptions properly, including but not limited to

  • Field validation

  • Network issues

  • Prohibit editing while saving

  • A good looking tip to denote the syncing is successful or failed.

  • Animated button to indicate the saving is in progress.

 

Add another button “Sync” to sync the update from the Rally workspace to the VSCode. The sync button should look like this. Note the step is also asynchronous, you need to handle all the exceptions properly too.

 

Once the sync is finished, you should highlight all the fields that are changed. The highlighting should fade out gradually.

 

If there are projects, backlogs (User Stories/Defects/Defect Suites) or tasks added or removed on the Rally workspace, the Sync button should also reflect the changes on the VSCode side.

 

2. Add tasks

 

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

 

You need to add a new page to create a new task, the following task items should be able to add on the VSCode side.

  • Name

  • Status

  • State

  • Owner

  • Description

  • Workout Product (Should be the selected backlog)

  • Expedite

  • Notes

  • Estimate

  • TO DO

  • Actuals

 

You can refer to the Rally workspace about these task items. The UI style of the new page should be look

 

You need to add a button to the Backlog editing page to add a new task. By clicking the button, the new page to add task should be prompted. There should be a “Save” and “Cancel” button on the new page.

  • By pressing “Save”, the new task is created on the Rally workspace, the new page should be closed and the result should also reflect on the VSCode side.

  • By pressing “Cancel”, just simply close the page and return to the Backlog editing page.

 

You need to add a button to the Backlog editing page to add a new task.

 

3. Edit/Delete tasks

 

On the tab of each task, you should add two buttons for editing and deletion.

 

By pressing the button for editing, a page for editing the task should be prompted, you can reuse the page for adding a new task, but filling all fields with the value of the editing task. The behavior of “Save” and “Cancel” button of the page is the same.

 

By pressing the button for deletion, a confirmation window should be prompted for the double confirmation.

 

If there are too many tasks, the tab of the task list should be scrollable horizontally. Note you are also welcome to redesign the task list to make it more user-friendly, but please ask for confirmation in the forum first.

 

4. Expose a link to Rally

 

We should expose a link on the backlogs and tasks that let the users open a browser directly to that artifact in Rally — in case they need to move things around and do advanced story management.

 
5. Change the file to store Rally API Key
 

In the first-time login, the user needs to input the Rally API Key and select a workspace. The API key and selected workspace are stored in .git/.config/workspace.json.

 

The client wants to change it to .git/config. This is a mandatory requirement.

 

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 

 
  • 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.

  • Login to your Rally workspace via https://rally1.rallydev.com/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 43d66998505a8d84709b69ed11135d77855f1978

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 setup 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: 30079281