Challenge Overview
Project Overview
In a team based development environment, developers usually don't know the status of CI build, and that may lead to piling onto red builds if developers commit & dash without checking the status of CI build first. It's also hard to figure out in this case who is fixing the build and other develoeprs could blocked by red builds.
The purpose of this project is to build an app to resolve such issues.
Competition Task Overview
For this PoC, we'll focus on the following features.
Windows Forms Application
This will be built as a Windows Forms application, and it will minimize to system tray when launched. We don't need any separate forms but just a system tray icon.
Proxy Server
Our developers while at work must go through an HTTP proxy server to access the Rally website (and anything else on the internet). This tool will either need to honor the system default proxy, HTTP_PROXY & HTTPS_PROXY environment variables, or allow the user to specify the proxy to use for this connection.
Status
The icon in the system tray will not be static, instead it needs to update itself based on the status of CI build:
- Green: SUCCESS
- Red: FAILURE
- Gray: if the build status is not current / connection error / inactive
You'll get the status through a HTTP call and the result will be in JSON, you'll need to parse the Status field in order to find out the current CI Build status.
The application needs to poll for build status every 15 minutes.
Details on how to retrieve the status will be provided in contest forum.
NOTE: the call may require authorization, your code should take care of that. You can hardcode the readonly account we provided in the forum, but we also want to be able to configure that, see below.
Tooltip
When mouse hovers on the status icon, we need to show a tooltip that includes build ID, date, and link. These fields can also be parsed from the JSON result (Number, CreationDate, and Uri fields in JSON).
Double clicking the icon should open the link in browser if such a link is available.
Context Menus
The following context menus should be present when you right click on the system tray icon:
- Check for current status: this is a menu to manually check for current status
- Show in browser: this simply opens the current/latest Uri parsed from JSON, this menu should be disabled if no Uri has been retrieved yet
- Options: this will allow users to configure a different user account if they don't want to use the hardcoded one; it will also allow users to configure the proxy server.
- Exit: closes the widget.
Installer
If this application cant be distributed without an installer (i.e. just extract and launch) that's great, otherwise you need to provide an installer project too.
Technology Overview
- C#
- Windows Forms
- .NET Framework 3.5
- Windows 7
Documentation Provided
Register to see documents in contest forum.
Final Submission Guidelines
Submission Deliverables
A complete list of deliverables can be viewed in the TopCoder Assembly competition Tutorial at: http://apps.topcoder.com/wiki/display/tc/Assembly+Competition+Tutorial
Below is an overview of the deliverables:
- An application that meets all listed requirements.
- A complete and detailed deployment documented explaining how to deploy the application including configuration information (if configuration is needed).
Final Submission
For each member, the final submission should be uploaded to the Online Review Tool.