UI for browsing objects that have different types that are interconnected
I can't give the exact purpose of the app (under NDA!) but I'm trying to design an interface that lets you explore data about various data objects that are all interlinked. I have an idea of how to do this but want some feedback on other approaches.
Some example objects, one of type person and one of type project (where many people can be on one project and one person can manage many people):
Type: Person
Name: Bob
Age: 32
Salary: 20000
Manages: [Alice, Fred, James]
Projects: [ProjectX, ProjectY]
Company: [Company1, Company5]
Type: Project
Name: ProjectX
Members: [Bob, Fred]
Budget: 23000
I have maybe 10 other types, where some types have about 20 properties and many of the properties are lists of references (which can be up to 50 items long) to other objects.
The interface I'm going with so far has a category sidebar on the left and a details pane on the right. When you start the app, it lets you browse all the objects by category:
Overview
Sidebar | Details
----------------------
> People | Alice (Age: 33, Salary: 303000)
|
Projects | Fred (Age: 31, Salary: 403000)
|
Companies | Bob (Age: 35, Salary: 503000)
|
Here the people category is selected and you can see all the person objects on the right. If you select Bob, the interface is replaced with a similar layout that lets you browse the details for Bob:
Viewing person Bob (Age: 35, Salary: 503000)
Sidebar | Details
----------------------
Summary |
|
> Manages | Fred (Age: 31, Salary: 403000)
|
Projects | James (Age: 51, Salary: 533000)
|
| Alice (Age: 41, Salary: 233000)
The extra "Summary" category can be used to display non-list properties about Bob e.g. age, salary, date of birth, location. You can then continue browsing this way by browsing to a different person, a different project etc.
To help with browsing the objects, the user needs a way to go back to the previous object and also back to the overview/root. I was thinking of adding a "back" button and a "home" button like in a browser for this.
Is there a better way interface I could use? One concern I have is the user might be confused at what happened when e.g. "Bob" is clicked on and the whole interface switches from being about the Overview to being about Bob. Should I be using something like nested dialogs to help the user realise what's going on? I find it hard to explain but I prototyped this and it doesn't feel right at the moment.
Are there interfaces that exist for browsing similar data and does this general type of interface have a name? It's vaguely like Apple's Finder interface but there the sidebar doesn't change.