CDOT-Dashboard: GitHub Integration

Background

Monday, May 2 – Friday, May 6, 2011 was my first week at CDOT (The Seneca Centre for Development of Open Technology). Our first project, dubbed the CDOT-Dashboard, is explained in Christopher De Cairos’s Dashboard Project Beginnings blog post. This post focuses on one of the widgets used for integrating with GitHub.

The GitHub Integration Widget: Version 0.1

One of our ideas for the CDOT-Dashboard is to have a widget that displays information related to the current CDOT projects on GitHub. To start off, we will be displaying data related to this project, CDOT-Dashboard, using the GitHub API, which is a RESTful web service that emits data in JSON. Currently, we are displaying the data for the most recent commits, using the following URI (Uniform Resource Identifier): http://github.com/api/v2/json/commits/list/jbuck/CDOT-Dashboard/master. If you prefer not to copy and paste the JSON and use an online tool to make it readable, you can download this JSONView Add-on for Firefox.

This add-on will allow you to view the JSON returned from the web service call in a formatted, coloured, and human-readable format (Figure 1).

Figure 1: JSONView Add-on for Firefox

How the Data Is Being Used

Presently, the list of commits are grouped by date. Under each date, the list of recent commits are displayed in the following format, with the changing text shown in bold:

author name committed with message “message

For example:

May 5, 2011

  • David Perit committed with message “Added first version of twitter widget for the dashboard”
  • cadecairos committed with message “fixed relative path to dashboard.js in clocktest.html”

Coming Up

Due to the fact that there will be many commits, we need to find a way to limit the size of this widget so it can fit on the screen beside the rest of the widgets. Our current idea is to have a container that automatically scrolls through the information.

If applicable, we may also display certain statistics visually–for example, the number of contributions each contributor has made in a bar or pie graph.

Additionally, we will make the code more dynamic, so that users of the API will find it easy to track one of their projects on GitHub: simply supply the desired user id, project name, and branch. (We may also add an extra, optional parameter, which will indicate the maximum number of commits to be display on the screen as the information is being scrolled.)

Eventually, we want to create something that displays the project score, which tentatively will be calculated by aggregating results from different sources–such as GitHub, and Lighthouse–and comparing them to the amount of time left until a project’s release date. If GitHub statistics are included as part of the project score, then this widget can display how it is affecting the score: is it bringing it up, or down?

We are also contemplating whether or not to include a list of project contributors in a separate view that automatically scrolls.

Take a look at our wiki page for ideas posted on GitHub to see what we are planning for the Dashboard. If you have any ideas that are not already written there, then please let us know!

Who Else Is Working on CDOT-Dashboard

At the time of this writing, there are currently 6 other people working on this project:

For version 0.1, Daniel Hodgin is in charge of project management, keeping David Humphrey up to date on the status of our project; the remaining work is divided as explained in Jon Buckley’s initial CDOT blog post, under the heading “Orientation Week.”

Parting Words

This is an exciting project in its early stage, and I look forward to continuing my work at CDOT. We all blog about the projects that we work on, so keep in touch to stay up to date with the latest developments!

Advertisements
This entry was posted in Open Source. Bookmark the permalink.

One Response to CDOT-Dashboard: GitHub Integration

  1. Hey nice addon, totally added it to my FF 😀

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s