Compatible with TeamCity
May 12, 2017
DM Dashboard A highly customizable dashboard used to radiate important information to interested people. This was originally built as part of the Entelect "Tech Accelerator" program. The system won first prize and is still actively used within Entelect. Although originally built for software development teams, there is nothing stopping it's use in other industries and areas. Features Centralized server that does all the grunt work of talking to other systems Browser based clients with always up connection to the server with push updates Customizable dashboards that allows placement of rectangular widgets as you see fit Multiple pages per dashboard, will cycle through them on a customizable interval Multiple dashboards, can have various clients each viewing their own dashboards Broadcasts: Force specified clients to display a temporary dashboard to broadcast a message for a set time period (This feature is still a work in progress) Client control dashboard allowing remote control of connected clients machines, allowing you to identify them, change their active dashboard or force-reload them. Plugin architecture - Endless possibilities. If you have a system that exposes an API, it can be added to your dashboard with a custom plugin. Architecture The core system is a node backend connected via web sockets to an Angular frontend. MongoDB is used to store configuration and is also available to plugins for storage of their own data. Actual monitoring and display is handled by plugins consisting of a backend node script and a custom Angular directive. There are no plugins installed by default, however the following are available in the plugins repo under the dm-dashboard org: Teamcity (designed specifically to keep an eye on multiple projects) Show a history of recent builds across all projects with failed builds floating to the top A list of currently executing builds Build agent queues Some stats of successfull/failed builds over the past day/week/month Octopus Deploy Show details of the most recent deploy for a project Client Only (Various widgets that don't require a server side component) Display an image Play a Youtube video Display an iFrame Others that cannot be released due to their company specific natures but doing the following: Communicate over ZeroMQ with a Windows GUI app Consume a client .net API using edge.js Experimental Microsoft TFS plugin Important Notice This app was originally written in 2014 and has had minimal changes since then. It is based on the popular stack which allowed for the plugin nature of the design. Even though it works currently (and is actively used) I have decided to open-source and share this code as I'm sure many other teams will benefit from using it. I would also like to bring it kicking and screaming into the present. Some things that I would like to see happen: Upgrade to Angular 2 Remove the dependency on, it was helpful to get plugability quickly during the origianl contest, but it also contains a lot of overhead and unnecessary complexity. I think a plain old node/express (or some other backend framework) with custom plugin code would be much easier to maintain Upgrade to a new version of node Remove the need to check-in the node_modules folder, this is partly due to the age of the system as some of its indirect dependencies (via have changed substantially and a fresh install would break the system. Much simpler installation process that doesn't require a git clone Lightweight client (less Javascript and animations) option for Raspberry Pi type clients connected to TVs If you find it useful, please consider contributing to modernizing it and getting it cleaned up and easier to maintain.
Please follow instructions on