views:

52

answers:

2

We are a group doing some academic research on Human-Computer Interaction and usability. Right now, we need to implement and test a new concept in order to evaluate it.

The end-product will basically be a small website. The website has some basic sign up and log in facilities. But the main functionality is a canvas were multiple users can collaborate into constructing a graph (wiki-style but with an enhanced interface).

So basically on the front-end, users will be able to manipulate a graph (add/edit nodes, edges, labels, comments...), and on the back-side a database which record every change (the graph can be updated on refresh or seemlessly, depends on how much time we have to implement it).

We don't have much experience in web application design, so we are asking for some guidelines on which languages/libraries/frameworks to use in order to implement this idea or at least prototype it. The interface doesn't need to handle more than a dozen users at the same time.

After a bit of research we thought about using Drupal for the users/session/database feature, but for the front-interface we were overwhelmed by the number of choices: JQuery, Flex, other visualization libraries. Any input or suggestion is appreciated.

Edit: I forgot to mention that since we're a small group in an academic setting, we require that any framework or library be free and/or open-source.

Clarifications: It is not required that users perceive changes in real-time. The level of interaction should be similar to a wiki. The difference is that it is a blend of graph elements and text that is being edited.

Thank you

A: 

For the front-interface I would suggest a diagramming component from a vendor that delivers decent tech support and is offering solutions for multiple technology platforms, e.g. yWorks.

+1  A: 

I would look at Jeff Heer's work. He is a professor at Stanford and a leading researcher in Information Visualization. Protovis which is implemented in Javascript or Flare which is implemented in Adobe Flash would be perfect for what you need. Another option from the same developer is Prefuse if you prefered to create a Java applet.

Another possibility is Javascript Infovis Toolkit.

As far as the collaborative part, Google-mob-write is a good option, though it probably provides more than you need.

Jay Askren