Challenge Overview
Challenge Objectives
-
Target environment: Rally, VSCode Extension
-
Basic Requirements: Connect VSCode to Rally workspace, retrieve data from Rally and display on VSCode editor.
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
Individual requirements
In this challenge, we need to build a VSCode extension that is able to connect to Rally workspace, retrieve data from Rally and display on VSCode editor.
Before the VSCode extension, you need to setup your Rally workspace.
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.
Once you logged in, prepare some demo Backlogs for testing.
Note, if you newly registered to Rally, some Backlogs are preset, you can use them for verification. But you are expected to add more iterations for To Do and Actual calculation
Here are the requirements of the VSCode extension.
1. Rally workspace Authorization
A Rally API Key must be created to use to access your subscription data without using your username and password.
NOTE: Make sure to give Full Access for your Rally API Key
For help creating a full-access API Key, please visit http://help.rallydev.com/rally-application-manager.
You will need to use Rally Web Service API to process all actions.
You need to provide a webview on VSCode to configure the API key at runtime, the API key can be persisted in the .vscode folder.
2. List all available projects of the workspace
In this challenge, you are required to create at least another 2 projects. When you newly registered to the Rally workspace, a sample project will be created. You can click your avatar on the upper-right corner, then click “System Administration” → “Setup” → “Workspaces & Projects” to add more projects.
In the VSCode extension, you need to create another webview on VSCode to list all available projects of the workspace, use a dropload list to select a project. Aside the dropdown list, you need to create a button “Load” to fetch all product backlog items (PBI) of the selected project.
Once the users passed the authorization, they should navigate to this webview.
3. Fetch all product backlog items (PBI) of selected project and display the fields
On the same webview mentioned on section 2, you need to display the PBIs.
In the webview, you need to add a dropdown list to list all available PBIs. When the user selected one PBI, the following field should be fetched and displayed
Backlog wise
-
Name
-
Status
-
Owner
-
Schedule State
-
Task Roll-Up
-
Est
-
To Do
-
Actual
-
-
Description
-
Notes
Task wise
-
Discussions
Each backlog can contain several tasks, we need to load the discussions of all tasks.
You can refer to this link to learn more details of the fields.
As the fetching is asynchronously, you need to use some loading icons (or text) to indicate the data is still fetching loading.
Note:
-
The UI of webview doesn’t need to look fancy, but all the required functionalities should be addressed. We will refine the UI in next challenges.
-
You are required to create several backblogs (at least 2) on your tested projects.
-
For each backlog, you are required to create several tasks for testing
-
The “Actual” field of Task Roll-Up is hidden by default. You can refer to this link to enable it. You need to report your actual working time by CA Agile Central Time Tracker.
3. Code linting
You are required to use tslint to lint your VSCode script. The code should be lint error free.
To reviewers
You will need to setup your own Rally workspace to review. Competitors won’t share their Rally credentials or API keys with you.
Final Submission Guidelines
Please submit the following items in a zip archive.
- The VSCode extension source code.
- 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.