Being able to compare projects in their current states is good, but the ability to compare where they've come from should also be available. For instance, I might like to graph together a project and the in-house libraries that it uses, or sets of interdependent apps.
To that end, timeline charts should be added to the projects page. The offerings should parallel those available on the Project Activity page, with a graph per project on the same page.
Each graph in the set must have the same x- and y-axis scales.
- title: Project name
- title clickthrough: project's activity page
- line: events should be marked on the link
- mouseover: project name, date, metric values, events
- x: time
A single zoom bar should be presented for the whole set, and should control the whole set.
What graph is shown in this zoom bar? It's slightly tempting to show all of them at once, but that would quickly become unusable. Instead, this should default to the content of the top (bottom?) graph in the stack and be changable by clicking on another graph.
Mousing over one graph in the set would paint mouseover details not just on the moused-over graph but on all of them so you could see the values on 3 June (for instance) for all projects at once rather than having to find the same point on each graph and remember (or write down) the details from graph to graph to graph.
A graph of LoC is by nature quantitative rather than qualitative, but it's still nice to have for two reasons. First, while the general trend will always be for LoC to increase, refactoring can lead to noticeable drops in LoC which would otherwise be hidden. Second, allowing the user to graph multiple projects' size together can bring home size differentials that would otherwise have gone unnoticed
By default, the timeline:
- must start at the earliest point on the oldest project's history
- must end on the current day, inclusive
Project timelines must not be extrapolated across time they don't actually cover. As an example, if the timeline starts in 2008 and a project wasn't put under analysis until 2012, it's line must start in 2012. Similarly, if it was last analyzed in 2016, it's line must end in 2016, and not be artificially stretched to the right edge of the graph
For maximal usability, we have already limited the number of projects displayable in a graph; bubble charts display a maximum of 99 projects, with a notification added if there are more projects than that.
Similarly, we must limit project history timelines to the top 5 or 6 projects in the selected set, with "top" being determined by the current sort. If the project set includes unshown projects, a notification should be added to the interface.
It may be difficult to filter the list of projects to exactly the set you want to see: Normal users can't set project tags, so filtering by tag is likely not going to work. And making the user update his favorites to be able to put a specific 6 projects on a graph together seems punitive. Ideally when more projects are selected in a search than can be shown in a graph, we would give the user a mechanism (checkboxes?) to select exactly the project set he wants to see.