Need some work done? Post a Project Today
I would like you to create a tool that shows a network (relational) graph.
It will allow the browsing of a very large network (much larger than can be shown on a screen or stored in a browser). When a user requests to expand a node, or queries for a particular node, it will request the related nodes from our server. You don't need to do any server stuff - that's done by us.
N1. Each node should have text on it something. You can have a shape around it like http://www.rubenswieringa.com/blog/wp-content/uploads/2007/interactivemindmap/ or just show the text like on http://www.economist.com/conversation-cloud?days=1 Or just the Don't have text outside the node http://www.chaosreigns.com/code/springgraph/dl/3d/phillylinux_full01.png where the text is ouside the node.
N2. Nodes should not overlap. On http://www.rubenswieringa.com/blog/wp-content/uploads/2007/interactivemindmap/ you can see that "Next Web minor" overlaps with "web2.0"
E1. Each edge will be given a score (how related two nodes are). Reflect this either with edge level or edge weight. See http://arborjs.org/echolalia/ has edges of different thickness
E2. When a user user requests to expand a node and our server returns nodes which have edges to existing nodes on the graph, it must link to the relevant existing nodes, not create duplicate nodes.
E3. It is an undirected graph, meaning that edges do not have directions (arrows) like on http://arborjs.org/halfviz/#/the-mystery-of-ura-senke
E4. This is a relational graph (not heirarchical). So any node may have a link to any other node.
X1. Users will be able to click on any node and show related links (see also E2)
X2. You only need to show one level of depth per click by the user, but previous nodes should remain on the page
X3. All nodes and links between nodes that the script has learnt about (via the JS requests) should be shown. (at least for the last 5 expands anyway)
X4. Upon clicking, the user should be informed somehow that it's loading, while the rest of the graph should still be navigable as usual
X5. The responses from our server will be in JSON.
You are welcome to use existing libraries. In fact we prefer it, so we know what we're getting.
In your bid include:
B1. Name what libraries/technologies you plan to use
B2. Examples of these working on the web.
B3. Relevant examples of graphs you've done before.
B4. Relevant examples of AJAX work you've done before.
B5. Any features above you can't deliver
B6. How long this project will take to complete.