Skip to content

[DMP 2025]: Music Blocks 4 Masonry Module #430

@pikurasa

Description

@pikurasa

Ticket Contents

Description

Music Blocks programs are designed to be built interactively by connecting
program constructs, which are visually represented as snap-together, Lego-like
graphical bricks. The goal is to develop a module for Music Blocks (v4) that
enables the creation of Music Blocks programs.

The project will begin with the development of a framework for generating individual
brick components that represent various program syntax constructs. This will be
followed by the creation of utilities to represent any program structure through
visual connections between the bricks. Next, a component will be built to display
all available program bricks, organized into categories, sections, and groups.
Finally, a workspace will be developed where users can drag-and-drop, as well as
connect and disconnect the program bricks to create their programs.

To draw the bricks, we will use SVG paths, so a solid understanding of SVG path
commands is crucial. The development will follow an Object-Oriented Programming
approach in TypeScript, with the rendering and management of visual states handled
using React Functional Components. A strong understanding of both TypeScript and
React is expected.

This project began last year, and you will be expected to build upon the progress
made and complete the module.

Goals & Mid-Point Milestone

Goals

  • Collaborate with project maintainers to create a design document outlining
    functional requirements, UI considerations, both high-level and low-level designs,
    and a technical specification.
  • Develop utilities to generate SVG paths for the bricks based on configurations.
  • Build utilities to represent and manipulate Music Blocks programs in-memory.
  • Develop the four individual submodules outlined above.
  • Write Storybook stories to document and showcase UI components.
  • Implement unit tests for functions and classes using Vitest.
  • Focus on optimizing processing performance.
  • Export a minimal API for integration with other parts of the application.
  • Document progress, outcomes, and technical guides for future contributors.

Setup/Installation

No response

Expected Outcome

No response

Acceptance Criteria

No response

Implementation Details

The following tools will be important to implementation:
TypeScript 5, React 18, Sass, Storybook, Vitest, and Vite

Knowledge of how Music Blocks (v3) works is essential to proper contextualization. Please familiarize yourself with that tool from a user's perspective, creating a few projects that interest you: https://musicblocks.sugarlabs.org/

Mockups/Wireframes

No response

Product Name

Music Blocks V4

Organisation Name

Sugar Labs

Domain

⁠Education

Tech Skills Needed

React, TypeScript, UI/UX/Design

Mentor(s)

Mentors

Anindya Kundu

Assisting Mentors

Walter Bender

Devin Ulibarri

Category

Frontend

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions