!!48h - Desktop CI Build Light PoC Assembly

Register
Submit a solution
The challenge is finished.

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.

Review style

Final Review

Community Review Board

Approval

User Sign-Off

Challenge links

ID: 30036155