Skip to content

Instantly share code, notes, and snippets.

@jahandaniyal
Last active September 12, 2018 00:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jahandaniyal/b7a98094b0f3988de25e7ba89f716fca to your computer and use it in GitHub Desktop.
Save jahandaniyal/b7a98094b0f3988de25e7ba89f716fca to your computer and use it in GitHub Desktop.
This gist describes the work I have done during GSOC '18. It will be used for the purpose of my Final Evaluation.

GSoC 2018 Work Product

Project Details

The goal of this project Git for Graphs was to implement a system of version control which will enable users to track changes made to the graphs, save different version of the graph and fork other graphs(this functionality is similar to forking a repository in GitHub). The users of GraphSpace can backtrack to a previous version of the graph using GUI and REST APIs. A layout created for a particular version of a graph may not be compatible with other versions of the same graph, therefore a 'Layout Compatibility' feature has been added to check layout compatibility and the user has the option to resolve the compatibility issues.

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.
My project 'Git for Graphs' has been divided into 3 major patches :

  • Fork Feature - This operation is similar to forking a repository on GitHub. Users of GraphSpace can create copies of Graphs which have been shared with them or those graphs which are publicly available. The Fork feature does not allow forking a Graph if it's owner has made it private.

  • Versioning - This is the main goal of the project. Users will be able to create and save different versions of the same graph. They can provide a "commit" message that describes the changes in the given graph with respect to previous graphs. Each version of the graph a unique link. Users can 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, a layout compatibility check feature has been added which will allow users to check if a Layout is compatible with a given version of the graph or not. If the layout is not compatibility, then the module reports this conflict to the User. A feature to resolve such conflicts has been added to Layout Compatibility module.

Project Proposal - (http://bit.do/etTjD)

1. Fork Feature

Patch Details - (Murali-group/GraphSpace#385)

Commit History - (https://github.com/Murali-group/GraphSpace/pull/385/commits)

All commits made in this branch relates to the work done during GSOC '18

2. Graph Versioning Feature

Patch Details - (Murali-group/GraphSpace#388)

Commit History - (https://github.com/Murali-group/GraphSpace/pull/388/commits)

All commits made in this branch relates to the work done during GSOC '18

3. Layout Compatibility Feature

Patch Details - (Murali-group/GraphSpace#390)

Commit History - (https://github.com/Murali-group/GraphSpace/pull/390/commits)

All commits made in this branch relates to the work done during GSOC '18

Working demo of the Patches

Highlights and Developer Wiki

My Blog

My Blogs on GSOC '18 and my project GraphSpace can be found here.

Mentors:

1- Aditya Bharadwaj - Github

2- Jing Cui - Github

Student's Profile - Daniyal Jahan :

Github
LinkedIn
HackerEarth

@adbharadwaj
Copy link

Looks good.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment