-
Notifications
You must be signed in to change notification settings - Fork 120
add report blogs for gsoc 2025 masonry module #405
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
saumyashahi
wants to merge
3
commits into
sugarlabs:main
Choose a base branch
from
saumyashahi:gsoc-blogs
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 1 commit
Commits
Show all changes
3 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
80 changes: 80 additions & 0 deletions
80
src/constants/MarkdownFiles/posts/2025-07-26-gsoc-25-saumya-week-07-08.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,80 @@ | ||
| --- | ||
| title: "GSoC '25 Week 07–08 Update by Saumya Shahi" | ||
| excerpt: "This period focused on implementing tower disconnections, dynamic updates, and improving parent–child relationship logic in the Masonry system." | ||
| category: "DEVELOPER NEWS" | ||
| date: "2025-07-26" | ||
| slug: "2025-07-26-gsoc-25-saumya-shahi-week07-08" | ||
| author: "@/constants/MarkdownFiles/authors/saumya-shahi.md" | ||
| tags: "gsoc25,sugarlabs,week07-08,saumya-shahi" | ||
| image: "assets/Images/GSOC.webp" | ||
| --- | ||
|
|
||
| # Week 07–08 Progress Report by Saumya Shahi | ||
|
|
||
| **Project:** [Masonry Module - Music Blocks v4](https://github.com/sugarlabs/musicblocks-v4) | ||
| **Mentors:** [Anindya Kundu](https://github.com/meganindya/) | ||
| **Assisting Mentors:** [Walter Bender](https://github.com/walterbender), [Devin Ulibarri](https://github.com/pikurasa) | ||
| **Reporting Period:** 2025-07-13 – 2025-07-26 | ||
|
|
||
| --- | ||
|
|
||
| ## Goals for This Period | ||
|
|
||
| - Add logic for **tower disconnections** inside the workspace. | ||
| - Update **parent-child relationships dynamically** during disconnections. | ||
| - Ensure bounding box recalculation after a brick or sub-tower is updated. | ||
| - Test system robustness by dragging bricks/towers in real-time. | ||
|
|
||
| --- | ||
|
|
||
| ## This Week's Achievements | ||
|
|
||
| 1. **Tower Disconnection Logic** | ||
| - Implemented drag-to-disconnect functionality for individual bricks and groups of bricks. | ||
| - Towers split automatically into sub-towers while maintaining valid structure. | ||
|
|
||
| 2. **Dynamic Parent–Child Updates** | ||
| - Ensured that when a child brick is removed, its parent updates both **dimensions** and **connection slots** immediately. | ||
| - Recalculated bounding boxes to avoid rendering issues. | ||
|
|
||
| 3. **Workspace Testing** | ||
| - Drag-and-drop now supports real-time snapping and real-time disconnection. | ||
| - Added visual rejection markers when an invalid disconnection was attempted. | ||
|
|
||
| 4. **Visual Verification** | ||
| - Verified behavior in Storybook and Playground. | ||
| - Example: Disconnected compound towers re-render correctly as separate trees. | ||
|
|
||
| --- | ||
|
|
||
| ## Challenges & How I Overcame Them | ||
|
|
||
| - **Challenge:** Recursive updates caused performance slowdowns for nested towers. | ||
| **Solution:** Optimized traversal using cached dimensions and partial recalculations. | ||
|
|
||
| - **Challenge:** Handling simultaneous drag of sub-towers with expressions. | ||
| **Solution:** Added special-case handling for expression slots and adjusted the bounding box calculation. | ||
|
|
||
| --- | ||
|
|
||
| ## Key Learnings | ||
|
|
||
| - Gained deeper insight into **tree traversal optimizations**. | ||
| - Understood edge cases in **drag-and-drop UX**. | ||
| - Strengthened knowledge of **React state management (Recoil)** for dynamic updates. | ||
|
|
||
|
|
||
| --- | ||
|
|
||
| ## Resources & References | ||
|
|
||
| - **Tower Utils:** [GitHub PR](https://github.com/sugarlabs/musicblocks-v4/pull/450) | ||
| - **Drag-and-Drop Docs:** [React Aria DnD](https://react-spectrum.adobe.com/react-aria/useDrag.html) | ||
|
|
||
| --- | ||
|
|
||
| ## Acknowledgments | ||
|
|
||
| Thank you to my mentors, the Sugar Labs community, and fellow GSoC contributors for your ongoing support and feedback. | ||
|
|
||
| --- | ||
69 changes: 69 additions & 0 deletions
69
src/constants/MarkdownFiles/posts/2025-08-09-gsoc-25-saumya-week09-10.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,69 @@ | ||
| --- | ||
| title: "GSoC '25 Week 09–10 Update by Saumya Shahi" | ||
| excerpt: "This phase focused on defining configurations for AST integration and refining the execution pipeline for Music Blocks v4." | ||
| category: "DEVELOPER NEWS" | ||
| date: "2025-08-09" | ||
| slug: "2025-08-09-gsoc-25-saumya-shahi-week09-10" | ||
| author: "@/constants/MarkdownFiles/authors/saumya-shahi.md" | ||
| tags: "gsoc25,sugarlabs,week09-10,saumya-shahi" | ||
| image: "assets/Images/GSOC.webp" | ||
| --- | ||
|
|
||
| # Week 09–10 Progress Report by Saumya Shahi | ||
|
|
||
| **Project:** [Masonry Module - Music Blocks v4](https://github.com/sugarlabs/musicblocks-v4) | ||
| **Mentors:** [Anindya Kundu](https://github.com/meganindya/) | ||
| **Assisting Mentors:** [Walter Bender](https://github.com/walterbender), [Devin Ulibarri](https://github.com/pikurasa) | ||
| **Reporting Period:** 2025-07-27 – 2025-08-09 | ||
|
|
||
| --- | ||
|
|
||
| ## Goals for This Period | ||
|
|
||
| - Define AST mapping configuration for each brick type. | ||
| - Support translation for multiple AST node types (expressions, statements, functions). | ||
| - Validate execution pipeline by passing ASTs into the engine. | ||
| - Fix bugs and inconsistencies in previous tower logic. | ||
|
|
||
| --- | ||
|
|
||
| ## This Week's Achievements | ||
|
|
||
| 1. **AST Translation Layer** | ||
| - Built configuration-driven mapping from **visual bricks → AST nodes**. | ||
| - Supported 26 AST node types, e.g., `FunctionCallStatement`, `BinaryOperatorExpression`. | ||
| - Ensured expressions nested within compound bricks translated recursively. | ||
|
|
||
| 2. **Bug Fixes & Refactoring** | ||
| - Refactored tower utilities for more modularity. | ||
| - Fixed multiple configuration inconsistencies that surfaced during AST export. | ||
|
|
||
| --- | ||
|
|
||
| ## Challenges & How I Overcame Them | ||
|
|
||
| - **Challenge:** Recursive expression mapping created circular references in early tests. | ||
| **Solution:** Added validation passes to prune invalid children before generating the AST. | ||
|
|
||
| --- | ||
|
|
||
| ## Key Learnings | ||
|
|
||
| - Stronger understanding of **AST structure and compiler pipelines**. | ||
| - Learned importance of **data validation** before execution. | ||
| - Improved debugging skills across **model-view-execution layers**. | ||
|
|
||
| --- | ||
|
|
||
| ## Resources & References | ||
|
|
||
| - **Music Blocks AST Specs** [Documentation done with peers](https://docs.google.com/document/d/1_MCCgl-RqiEQH0UQ4EX-2O6G4iRxgHAY1rZpw3QPXT0/edit?tab=t.otbw6ldsc32w) | ||
| - **AST Documentation:** [Mozilla AST Reference](https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Parser_API) | ||
|
|
||
| --- | ||
|
|
||
| ## Acknowledgments | ||
|
|
||
| Thank you to my mentors, the Sugar Labs community, and fellow GSoC contributors for your ongoing support and feedback. | ||
|
|
||
| --- |
79 changes: 79 additions & 0 deletions
79
src/constants/MarkdownFiles/posts/2025-08-24-gsoc-25-saumya-shahi-final.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,79 @@ | ||
| --- | ||
| title: "GSoC '25 Final Wrap-Up by Saumya Shahi" | ||
| excerpt: "Summarizing my GSoC 2025 journey: building the Masonry Module for Music Blocks v4, key results, challenges, and reflections." | ||
| category: "DEVELOPER NEWS" | ||
| date: "2025-08-24" | ||
| slug: "2025-08-24-gsoc-25-saumya-shahi-final" | ||
| author: "@/constants/MarkdownFiles/authors/saumya-shahi.md" | ||
| tags: "gsoc25,sugarlabs,final,saumya-shahi" | ||
| image: "assets/Images/GSOC.webp" | ||
| --- | ||
|
|
||
| # Final Wrap-Up Report by Saumya Shahi | ||
|
|
||
| **Project:** [Masonry Module - Music Blocks v4](https://github.com/sugarlabs/musicblocks-v4) | ||
| **Mentors:** [Anindya Kundu](https://github.com/meganindya/) | ||
| **Assisting Mentors:** [Walter Bender](https://github.com/walterbender), [Devin Ulibarri](https://github.com/pikurasa) | ||
| **Reporting Period:** 2025-08-10 – 2025-08-24 | ||
|
|
||
| --- | ||
|
|
||
| ## Goals for the Wrap-up | ||
|
|
||
| - Finalize bug fixes, polish UI, and stabilize interactions. | ||
| - Prepare project documentation and final report. | ||
| - Write retrospective blog summarizing the entire journey. | ||
|
|
||
| --- | ||
|
|
||
| ## Achievements | ||
|
|
||
| 1. **Final Integration** | ||
| - Combined **brick rendering, palette, drag-and-drop, disconnections, and AST mapping** into one cohesive system. | ||
| - Verified functionality across simple, expression, and compound brick types. | ||
|
|
||
| 2. **Documentation** | ||
| - Wrote detailed documentation covering architecture, utilities, and developer setup. | ||
| - Submitted final report for GSoC archives. | ||
|
|
||
| 3. **Community Contribution** | ||
| - Collaborated with fellow contributors for bug fixes. | ||
| - Received valuable feedback from mentors on UX design and technical choices. | ||
|
|
||
| --- | ||
|
|
||
| ## Challenges | ||
|
|
||
| - Balancing **scope creep** vs. realistic deliverables. | ||
| - Optimizing performance for larger towers with nested bricks. | ||
| - Ensuring seamless UX across all brick interactions. | ||
|
|
||
| --- | ||
|
|
||
| ## Key Learnings | ||
|
|
||
| - Designing for **scalability** is as important as delivering features. | ||
| - Collaboration and feedback loops are critical for open-source success. | ||
| - Improved knowledge in **React, SVG, ASTs, and data structure optimizations**. | ||
|
|
||
| --- | ||
|
|
||
| ## Reflections | ||
|
|
||
| > GSoC 2025 has been transformative. From learning how to render scalable SVG paths to building a full drag-and-drop visual programming system, this project taught me both technical depth and collaborative spirit. | ||
|
|
||
| This work will help future learners explore music and coding in a playful, powerful way. | ||
|
|
||
| --- | ||
|
|
||
| ## Resources & References | ||
saumyashahi marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| - **Project Repo:** [Music Blocks v4](https://github.com/sugarlabs/musicblocks-v4) | ||
|
|
||
| --- | ||
|
|
||
| ## Acknowledgments | ||
|
|
||
| Deep gratitude to my mentors **Anindya Kundu, Walter Bender, and Devin Ulibarri** for their guidance. Special thanks to the **Sugar Labs community** for encouragement and support throughout my GSoC journey. | ||
|
|
||
| --- | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.