-
Couldn't load subscription status.
- Fork 139
Description
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