Skip to content
Aditya Bharadwaj edited this page Dec 15, 2017 · 3 revisions

GraphSpace: Git for graphs

Background

GraphSpace is an easy-to-use web-based platform collaborating research groups can use for storing, interacting with, and sharing networks. A GraphSpace user can upload graphs through a REST API, import graphs created in Cytoscape, interact with graphs (view them, customize layouts, and save layouts), share graphs (create groups and add collaborators, share graphs among all members of a group or with the world), search graphs, and organize graphs using tags. GraphSpace has a comprehensive REST API that allows users to communicate programmatically with it.

Goal

The overall goal of this project is to implement a simple version of "Git for Graphs", which will allow users to track changes made to a graph, to describe these changes, as well as to easily undo these changes. This feature will help users to document the process and workflow that produced the given graph. Here is a list of features that the versioning system must support:

  • Versioning - This is the main goal of the project. Users should be able to create and save different versions of the same graph. They should provide a "commit" message that describes the changes in the given graph with respect to previous graphs. Each version should have a unique link.

  • Backtracking - Users should be able to go back to previous versions at any point of time using graphical interface and RESTful interface.

  • Layout compatibility - Since there may be different versions of the same graph, a layout that was created for one version may not be compatible with a later version. In order to support layout compatibility, we propose to add a feature which will allow users to:

    • Transfer layouts from one version to another. This action is similar to creating a pull request in Github.
    • Layout compatibility check. If the layout is not compatibility, the tool should report the conflict. This check is similar to Github’s feature to check if a pull request is ready to merge or not.

Skills

List skills/technologies that the student should be familiar with.

  • Python, Django, Databases (SQL), HTML, JS, CSS (essential)
  • PostgreSQL, Git, Jquery (nice to have)

Clone this wiki locally