<div dir="ltr">Greetings<br><br>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.<br><br>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.<br><br>We can consider this project have two main parts: 1. developing git-based backend, 2. integrating the developed backend with Journal(Turtle for starting).<br><br>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.<br><br>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:<br>A new option(named git) near to help on the header bar of Turtle UI<br>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.<br><br>We need to think more for the architecture to implement this second part.<br><br>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.<br><br><br clear="all"><div><div class="gmail_signature"><div dir="ltr">Thanks!!!<a href="http://about.me/shaifaliagrawal" style="text-decoration:none" target="_blank"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td style="height:30px;font-size:0px"></td></tr><tr><td style="line-height:1;padding:0px;vertical-align:top" align="left" valign="top"><div style="margin:0px;font-size:18px;line-height:1;font-weight:bold;color:rgb(51,51,51);font-family:proxima-nova-1,Proxima-Nova,Helvetica,Arial,sans-serif">Shaifali Agrawal</div>
                                        <div style="margin:3px 0px 0px;font-size:12px;color:rgb(43,130,173);font-family:proxima-nova-1,Proxima-Nova,Helvetica,Arial,sans-serif">about.me/shaifaliagrawal</div>
                                </td>
                        </tr>
                        <tr>
                                <td style="line-height:1;vertical-align:top;padding-top:8px" align="left" valign="top">
                                        <div style="text-align:right;background-color:rgb(197,208,224);height:4px"><img src="http://d13pix9kaak6wt.cloudfront.net/signature/colorbar.png" alt="Shaifali Agrawal on about.me" style="float: right; border: 0px none; margin: 0px; padding: 0px; display: block;" height="4" width="88"></div>
                                </td>
                        </tr>
                        <tr><td style="height:20px;font-size:0px"> </td></tr>
                </tbody></table>
        </a>

                        <br></div></div></div>
</div>