feat: Add Interactive First Project Tutorial with Step Validation#5126
feat: Add Interactive First Project Tutorial with Step Validation#5126Ashutoshx7 wants to merge 7 commits intosugarlabs:masterfrom
Conversation
|
✅ All Jest tests passed! This PR is ready to merge. |
2 similar comments
|
✅ All Jest tests passed! This PR is ready to merge. |
|
✅ All Jest tests passed! This PR is ready to merge. |
|
In our last meeting, we discussed the possibility of adding a guided tutorial. I’d really appreciate your feedback on this approach and whether this direction aligns with what we had in mind. Thanks! |
|
I think the idea of this. Maybe we can get broader feedback from @pikurasa and others. I did encounter a few issues, such as the palette closing then I clicked next in the tutorial (after I opened the Rhythm palette). And if froze on Card 4. If we do do this, maybe it should appear sooner in the help card sequence. |
|
Hey @Ashutoshx7, this interactive tutorial is looking great! 🎵 I pulled the branch locally to dig into the issues @walterbender mentioned and found a couple of things that might help fix them:
Hope this helps get it merged! Happy to test again whenever you update. 🚀 |
- Add new FirstProjectTutorial.js with 10 guided steps - Implement action validators for palette, blocks, and connections - Add spotlight overlay with reduced opacity for drag-and-drop steps - Integrate with HelpWidget via 'Start Interactive Tutorial' button - Add tutorial introduction cards to HELPCONTENT This interactive tutorial guides new users through creating their first Music Blocks project, validating each action before allowing progression.
- Use addEventListener with once:true instead of onclick for play button - Add safety check for startBlock.connections in validator - Reduce font sizes to prevent text overlap on smaller screens
- Fix Step 4 and Step 5 freezing issues in FirstProjectTutorial - Update tutorial tooltip styling to match help widget cards - Remove redundant tutorial step cards (39-49) from help widget - Keep only 'Build Your First Project' intro card (card 38) - Add side-by-side Start/Skip buttons with clean styling - Reduce font sizes to prevent header text overlap
b71a993 to
fa52389
Compare
|
✅ All Jest tests passed! This PR is ready to merge. |
|
✅ All Jest tests passed! This PR is ready to merge. |
|
@walterbender Screen.Recording.2026-02-01.041809.mp4this pr is ready for review |
|
Generally looks good. But maybe @pikurasa and I can sit down with you to go over the details of the script. For example, should we impose a starting condition? Maybe the goal should include an action block? |
- Rewrote _isBlockConnectedToStart to use BFS traversal that checks ALL start blocks and traverses deep into clamp/inner connections, fixing false negatives when blocks are nested inside Repeat or Set Instrument - Simplified _hasRepeatBlock and _hasSetTimbreBlock to reuse the BFS traversal, eliminating duplicate traversal code - Fixed _prepareCleanCanvas to pass doNotSave=true to sendAllToTrash, preventing the tutorial from overwriting the user's saved project - Updated Flow palette step to guide users to switch sidebar tabs (circular arrows icon) since Flow is on the second tab, not the default music tab - Updated Tone palette step hint to guide users back to first tab
|
✅ All Jest tests passed! This PR is ready to merge. |
Summary
This PR introduces an interactive step-by-step tutorial that guides new users through creating their first Music Blocks project. Unlike the existing static help tour where users simply click through slides, this tutorial validates user actions and only allows progression when each step is completed.
Problem
New users often struggle with Music Blocks' learning curve:
Solution
An interactive tutorial system featuring:
Tutorial Steps
Changes
New Files
Modified Files
index.html- Added script referenceTechnical Highlights
Testing
How to Test
cursorful-video-1768044942838.mp4