Description
Ticket Contents
Description
Portfolio creation, reflection, and collaboration are important parts
of the educational philosophy at Sugar Labs, and Git version control
is a great way to explore all these things.
At Sugar Labs, we've created some initial
designs
for a couple approaches to introducing Git version control to young
learners. This proposal focuses on introducing Git version control
through our existing web-based programs, namely Turtle Blocks and
Music Blocks. Both these programs have a feature to publish projects
to a server called the "Planet". Currently the Planet just stores
projects that users have made, without any sort of version control
features like fork, history, or checkout.
This project requires a contributor to work closely with Sugar Labs
mentors to implement a system of Git version control features, running
on a backend server, that are exposed to the user.
Goals & Mid-Point Milestone
Goals
- [Research git backend methods]
- [Design git backend methods]
- [Implement "anonymous" git backend for users that are not logged in to GitHub, GitLab, etc.]
- [Implement git backend for users that are logged in to GitHub, GitLab, etc.]
- [Begin testing implementation with partner schools]
Setup/Installation
No response
Expected Outcome
Upon successful implementation, users should be able to commit changes as git, into a repository -- either into their own repository or "anonymously" to the Sugar Labs repository.
From the Music Blocks / Turtle Blocks frontend, users should be able to view changes, see branches, fork projects, and merge projects. Other extra features could be the ability for users to publish challenges (i.e. "issues") for possible improvements.
Acceptance Criteria
The project will be considered complete when:
- users can publish their projects to a main Sugar Labs repository (without being logged in)
- users who have GitHub/GitLab accounts can publish projects to their own repository
- users can view history and forks of projects
- users can merge projects
- users have a UI that helps them visualize history and branches for projects
Implementation Details
The following will be used:
- git
- an API that talks to either GitHub, GitLab, or other git forge service
- Javascript for a frontend to interact with the backend
Mockups/Wireframes
References:
Product Name
Music Blocks and Turtle Blocks
Organisation Name
Sugar Labs
Domain
Education
Tech Skills Needed
JavaScript
Mentor(s)
@walterbender @pikurasa @sum2it
Category
Backend