CDOT Dashboard

From CDOT Wiki
Jump to: navigation, search

Software

Widget ideas

  • Check-ins on Git
  • new bugs filed
  • bugs closed
  • days until ship
  • packages built/failed (fedora-ARM)
  • processing/js faster or slower?
  • twiiter feeds for CDOT employees
  • People Currently working at CDOT (standard timetables of all employees sine we have no punch in or logging)
  • Widget that just displays text
  • Who is not in CDOT (more feasible than showing who is in CDOT since it can be updated only when people are away)
  • Machine up/down status
  • Assign a score to a project
  • Planet blogs
  • Holidays? Who's on vacation/sick, next statuatory holiday
  • Time of day (clock)
  • Date/Month
  • Calendar
  • Timer until a certain day
  • Daily comic (xkcd?)
  • Project timeline showing tickets completed over the time period until release along with a line going from 0 tickets at 0 days to all tickets at end day which can be used as an indicator of project health (above the line is good, below the line is bad) (might need different weights for different tickets unless they are all at a very granular level)
  • some kind of pop-up or other attention getter when various things happen (e.g., new bug filed, new blog post, ...)
  • ticker tape for twitter?
  • volume of traffice on irc (how many lines of text)
  • ticket thrashing (Number of tickets for code review, super review)
  • IRC channel activity (online users, messages, ??)
  • churn on zenit wiki (changes to pages per day)
  • Birthday notifications (Voluntary for people who love embarassment)
  • Etherpad tracking (possibly from links sent from IRC)

Data visualizations needed for the above ideas

  • Timers, clocks
  • tickers

How we display those visualizations

  • Use JQuery resizable, draggable divs

JSON Examples

var j = {};
var myJSONObject ={"bindings": [
       {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
       {"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
       {"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
   ]
};
"key": "value","key": "value","key": "value"

the above object contains an array of objects

To access something in that object myJSONObject.bindings[0].ircEvent

OR myJSONObject.bindings["

if you want help: http://json.org/

Layout Framework

  • Toggle editing mode - lets you resize, remove, add, move, and configure widgets
  • Minimize/Maximize widgets
  • Widgets have a configuration interface
  • When configuring your widgets(putting in refresh timers, whatever) MAKE SURE YOU PARAMETERIZE THE DATA TO PREVENT SQL INJECTION
  • Widgets are in containers that are movable
  • Containers can have multiple widgets
  • Each widget has its own update timer
  • Have some widgets rotate through different people's feeds. Each widget has it's own cycling interval and you can set them up to cycle in sync if you want to show different projects

Server Structure

  • Server accesses APIs and gets data and stores it as often as is needed/possible for each server
  • Client side accesses the server to get the data
  • Data stored in SQL lite

Division of Work

Daniel

  • Project management, faculty updates

Dave

  • lighthouse integration
  • google charts

David

  • Twitter widget, title widget, github stats displaying

Chris

  • Widgets (pop-up notifications), generic textual displays for time, days till ship (or hours, minutes, seconds)

Jon, Mohammed

  • Create github project
  • Look at github commit integration
  • Investigate statuspanic on github
  • Setup server

Scott

  • Layout Engine
  • widget and container grouping, draggig, resizing, closing, minimizing, etc

Version 0.1 overview (Due Friday May 6th)

  • Get simple widgets working in a simple layout engine using data from flat files
    • Needs github integration and widget code and layout engine
    • Widgets have hardcoded configuration

Version 0.2 overview

Hardware

Implement a 'green' hardware display of the current dashboard. Ideas:

  • Base the hardware on a PandaBoard
  • Purchase a large (32"?) display for the wall you face as you enter CDOT and/or the window facing the TEL southeast entrance
  • Use a passive infrared detector to detect when people are present, and make the display sleep until someone approaches

Version 0.1 Overview (Due Tuesday May 10th)

  • PandaBoard configured with F13 + kernel + video drivers
  • FF3.6 compiled and optimized for the PandaBoard