Skip to content
T. M. Murali edited this page Dec 15, 2017 · 7 revisions

Implement a comment system in GraphSpace

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. Overall, GraphSpace provides a rich set of user-friendly features designed to enhance network-based collaboration.

Goal

The aim of this project is to implement a real-time system that will allow users to comment on graphs and discuss ideas with each other using the GraphSpace web interface. This project has three sub goals:

  • Design a user interface for creating comments. When visualizing a graph, this interface should allow users to add comments as a means to discuss or share ideas with their collaborators for a given graph, analogous to the way "Comments" on Google Docs allow users to discuss ideas on text documents. Being applicable to graphs, the comment system on GraphSpace should apply to node, edges, groups of nodes, and subgraphs, or even the entire graph. Comments can be applicable only to a specific layout as well. There should be a way to mark comments as resolved.

  • Develop a web service for real time comments. In GSoC 2017, one of the students working on GraphSpace implemented a real-time notification system. We would like to use the same architecture to implement real time storage, querying, and recovery of comments. This task will involve studying the code to understand how GraphSpace uses sockets to support real-time notifications.

  • Integrate the web service with the user interface. Finally, integrate the web-service with the user interface to implement an end-to-end user flow.

Skills

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

  • Python, Django, HTML, JS, Jquery, CSS, Databases (SQL), Kafka (essential)
  • Git, Cytoscape.js (nice to have)
Clone this wiki locally