Monday, 22 August 2016

GSOC 2016 final blog post

Git Backend
This project was aimed to create a git like backend for Turtle JS and Sugar Journal which will support git functions like versioning and forking.
Project Proposal :Proposal
Final Progress: We have nearly met all the goals that we described/explained in the project proposal. A Git Backend Api was created which was used in TurtleJS(web activity) and Turtle Art(python activity) as examples. Server integration was also given in the case of TurtleJS. Enough progress have been made with the project to progress in the future, the idea of a Git Backend was explored and the future part is to integrate the backed api code to all other sugar activities.

Git Repositories i worked on this summer:
1. Git Backend Code : Git Backend
2. Turtle JS with git backend : Turtle JS(with Git Backend)
3. Turtle Art with git backend :  Turtle Art(Git Backend)

Turtle JS
Turtle JS is originally maintained at TurtleblocksJS, changes i made to the code are:
1. Converted the TurtleblocksJS app to a flask application.
2. Added the git backend functionalities to the web activity.(Explained in the repo)



In the bottom image multiple new git buttons such as pull, clone, add , status, diff, etc are added.

Turtle Art
TurtleArt is originally maintained at TurtleArt, the changes i made to it are:
1. Added the git backend functionalities to the activity(Check repo for detailed description).



In the above image various git buttons are added. The buttons in both the Python activity and the web activity are meant to produce the same results even though they have very different UI's.

Documentation: Documentation

Friday, 12 August 2016

Progress till Now

Nearly 10 days are left for the pens down in this Google Summer Of Code Project and the Git Backend project has taken its final shape and is near completion.
Tasks Completed so far:
1. Git functions created in Turtle JS
2. Git functions added in Turtle Art

Tasks Left:
1. Implementing Git Push(Having issues with authentication, going to use ssh keys), as soon as this bug will be solved different users can work on similar Turtle projects in across both the web version and the python version.
2. Adding different images for different buttons
3. Documentation

Repo for Turtle JS :
Repo for TurtleArt:

So for the github part of this project, i.e., saving the repos remotely currently a repo is made in github named TurtleCodes which will contain all the turtle codes (ta and tb). The user will be directly able to make changes to that repo once the admin of that repo has approved his request or added his ssh key. Also a option is given to fork the repo to make things work locally.

Attaching the videos of both the projects:
Turtle Art:
Turtle JS: