[Sugar-devel] Git Backend Architecture | GSoC'15

Shaifali Agrawal agrawalshaifali09 at gmail.com
Thu Mar 19 08:59:22 EDT 2015


I am Shaifali Agrawal(exploreshaifali on IRC) pursuing masters in Computer
Application from India, looking forward to contribute for Sugar Labs for
project "Git Backend" under program GSoC'15.

The project basically needs to first build git based backend and then for
now add the feature of that backend at turtle blocks so that end users can
store, retrieve back, clone, look at history, fork, make pull request,
merge turtle programs without any hassle.

We can consider this project have two main parts: 1. developing git-based
backend, 2. integrating the developed backend with Journal(Turtle for

For the first part I did sturdy research, I have wrote create, read,
update, delete functions in shell script to work as git based backend. But
for the project I will need to code same in Python and Javascript, that can
be achieved via libraries like libgit2 js-git. Under the hod git is a
key-value store and for generating key(sha or hash-objects) it generates a
checksum of the content of file plus a header. So this can be achieved in
Python and Javascript.

The second part is something for which we need to think more! To think for
it lets us assume we have a git based backend ready. Now we want to add the
features of backend to let Turtle users store their programs, retrieve
them, modify them, look at history etc. To start let us assume a user can
hack on only his repos. So I am thinking for it something like:
A new option(named git) near to help on the header bar of Turtle UI
When user click on it, further sub options appear on side bar(pallet), the
options are open, save-to-git, history, delete, clone, merge. What other
options we can add? For options like clone, fork, pull request I think we
need users to look into other users repo . Let me know if there is any
other way, option to achieve this.

We need to think more for the architecture to implement this second part.

Since this is my first post to sugar mailing list, let me introduce myself
a bit: I am a student, GSoC aspirant as mentioned above. I have worked as
OpenStack intern under Outreachy program(previously known as Outreach
Program for Women). I want to work for this project because git is
something that always excites me. I know git internal stuff and would love
to hack on similar functionalities that  is needed to add on Journal.

Shaifali Agrawal
  [image: Shaifali Agrawal on about.me]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sugarlabs.org/archive/sugar-devel/attachments/20150319/bafbc2fe/attachment.html>

More information about the Sugar-devel mailing list