What is GitHub?
First, some background: GitHub is an online service for sharing and publishing code. It allows teams to collaborate on projects and easily manage revisions using three functions:- Forking – copying a repository from one user to another.
- Pushing / pulling – managing revisions back to the project repository.
- Merging – to merge the changes back to the main repository.
Existing visualization
For some inspiration, we took a look at the data visualization options already available in GitHub. Mostly, they focus on standard quantitative measures:




Represent
Data slurped and model (loosely) defined, we can get started building the application. There’s more detail on this in our KeyLines SDK documentation. Contact us for an evaluation if you don’t have access to the SDK site.) We made a few design and functionality decisions early on:- All the data was time-stamped, so incorporating the time bar was a no-brainer.
- To give the application a different ‘look and feel’, we customized the styling and decided on a black background to the chart and time bar.
- Most commits have a mix of deleted and added lines, so we wanted to color links on a red-green scale programmatically.
- Contributor and file icons would be extracted from the GitHub API.

Refine
Basic application running, we set about refining the behavior and tweaking the appearance. We’ve found the best way to do this is through basic UAT. Giving the app to someone who hasn’t used it before and asking them to answer some questions. From this we learnt we needed to Add the option of sizing the file nodes by the degree of commits:

So, what can we learn from the graph?
Now we have a functioning graph visualization application populated with10 days’ worth of repository data. But what can we actually learn with this tool? Activity over time The time bar offers an instant view of commit volume through time. But unlike the charts provided by GitHub, the time bar allows instant filtering of the time range to investigate peaks and troughs in productivity. On October 13, a maintenance version (1.9.9) was released, and we can see the flurry of commits taking place the Friday before:



