Skip to content

[DMP 2025]: Git backend for Turtle Blocks and Music Blocks #4534

Open
@pikurasa

Description

@pikurasa

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions