sugarlabs / musicblocks

Music Blocks -- A musical microworld
https://musicblocks.sugarlabs.org/
GNU Affero General Public License v3.0
588 stars 823 forks source link

[DMP 2024]: Add real-time collaboration to Music Blocks #3851

Open walterbender opened 7 months ago

walterbender commented 7 months ago

Ticket Contents

Description

The Python version of Turtle Blocks has a collaboration mode, where the learner can share stacks of code and, in real time, share graphical output. This project is to add similar functionality to Music Blocks. Following the pattern of Turtle Blocks collaboration is pretty straight-forward. What makes this project difficult is that Music Blocks will require a higher degree of synchronization.

Specifically, we would be working toward accomplishing the following:

Server-side data storage and proxying
API to syncrhonize Music Blocks projects across browsers
Features to perform projects in sync, in real time, with low latency

Goals & Mid-Point Milestone

Goals

Setup/Installation

No response

Expected Outcome

Acceptance Criteria

A working model of collaboration. Scaling is outside of the scope of this initial implementation.

Implementation Details

We'll need to run a server in a docker running on one of the Sugar Labs servers. We can use the existing Planet to store the shared project.

Mockups/Wireframes

No response

Product Name

Music Blocks

Organisation Name

Sugar Labs

Domain

⁠Education

Tech Skills Needed

Docker, JavaScript, Python, WebSockets

Mentor(s)

@pikurasa @walterbender

Category

Backend, Frontend, Research

rohitkori commented 7 months ago

Hi @walterbender, I am interested in this project. I have experience working on various projects and have worked with various tech stacks like Node.js, Django, and ReactJs, as well as DevOps tools such as Docker and Kubernetes. Additionally, I am one of the coordinators of the open-source community at my college and have worked on open-source projects. Could you please provide me with more details about the project description and approach? I would appreciate your help in gaining further insights.

walterbender commented 7 months ago

@rohitkori Please refer to the Getting Started section of our Docs repo.

AkanshuAich commented 7 months ago

Hii @walterbender ,

I am Akanshu Aich, a third year student from International Institute of Information Technology, Bhubaneswar. I am writing to express my interest in contributing to this project as a part of DSP 2024. Having thoroughly reviewed the project, I am impressed by its objectives and it seeks the potential for great impact in industries.

With my background in Backend using Django , MERN with practicing hands on Machine learning and DevOps such as Docker, I believe I can make valuable contributions to both backend and frontend part. My experience includes several projects like Society-Expenditure Manager using Django, Real Estate using MERN and Info-Finding Tool using Machine Learning(LLM), which I believe align well with the goals of your project.

I am particularly interested in fulfilling the requirements of the project and have some ideas on how to approach it effectively. I am committed to adhering to best practices, contributing high-quality code, and actively collaborating with the project maintainers and community.

I am excited about the opportunity to contribute to Music Blocks and help further its mission. I look forward to discussing potential contributions and how I can best support the project.

Please guide me with procedure and with all your knowledge and experience.

walterbender commented 7 months ago

@AkanshuAich I would recommend that start off by creating some Music Blocks projects to get a feel for how the language works. And explore some of the example projects. Then take a look at the Getting Started guidelines in the Docs section of github.com/sugarlabs.

apsinghdev commented 7 months ago

@walterbender can we start making PR's for this project?

walterbender commented 7 months ago

PRs are always welcome.

ashuashutosh2211 commented 7 months ago

@walterbender I'm Ashutosh, a prefinal year student at IIT Jodhpur, specializing in Artificial Intelligence and Data Science. I have a strong proficiency in programming languages such as Python and C++. My experience includes working on diverse projects spanning machine learning and deep learning, including endeavors like Stock Price Prediction and Speech-to-Text Transcription. In addition to my programming skills, I have hands-on experience with various databases such as SQL (MySQL), Document-Oriented Databases (MongoDB), and Graph Databases (Neo4j). One notable project where I applied these skills is the development of a Video Search Engine. I am interested to contribute in this project. Could you please provide me with more details about the project description and approach? I would appreciate your help in gaining further insights.

walterbender commented 7 months ago

@ashuashutosh2211 I recommend that you (1) familiarize yourself with Music Blocks -- write some Music Blocks code; (2) think about how multiple people could collaborate; (3) think about collaboration frameworks.

NEGRAH-S commented 7 months ago

Hello @walterbender , Am Highly interested for this project and will send you my apporaoch for same along with a draft proposal for reviews by tonight.

RSN601KRI commented 7 months ago

Hello, @walterbender , I would like to contribute to this project. I have the required skillset for it. I'm glad to work and explore as well as express through my ideas and skillset.😊

walterbender commented 7 months ago

@NEGRAH-S Looking forward to hearing from you and reviewing your ideas.

walterbender commented 7 months ago

@RSN601KRI The project will involve some experience with JavaScript for the front end. Probably the backend would require Python skills. There would need to be some server component through which the users communicate.

RSN601KRI commented 7 months ago

Sure @walterbender, the project mainly focuses on using JavaScript for the front end to make a cool and easy-to-use interface. We'll also need Python skills for the backend stuff, like handling data and making sure everything runs smoothly behind the scenes. Plus, we'll set up a server so users can talk to each other. To sum up, being good at both JavaScript and Python is key. I've got a proposal ready. Could you give it a look so I can get started on the project?

walterbender commented 7 months ago

@RSN601KRI feel free to send me your proposal. (walter --AT-- sugarlabs --DOT-- org)

AbhimanyuSamagra commented 7 months ago

Do not ask process related questions about how to apply and who to contact in the above ticket. The only questions allowed are about technical aspects of the project itself. If you want help with the process, you can refer instructions listed on Unstop and any further queries can be taken up on our Discord channel titled DMP queries. Here's a Video Tutorial on how to submit a proposal for a project.

walterbender commented 5 months ago

Weekly Goals (To be filled by mentor)

Week 1

Week 2

Week 3

Week 4

Week 5

Week 6

Week 7

Week 8

Week 9

Week 10

Week 11

Week 12

apsinghdev commented 5 months ago

Weekly Learnings & Updates (To be filled by contributor)

Week 1

apsinghdev commented 2 months ago

Link of the collaboration-server - https://github.com/sugarlabs/collaboration-server