|
| 1 | +--- |
| 2 | +title: "GSoC '25 Week 07 Update by Nikhil Bhatt" |
| 3 | +excerpt: "Implemented forking of projects in the frontend, backend route for returning project data only, and student descriptions for projects" |
| 4 | +category: "DEVELOPER NEWS" |
| 5 | +date: "2025-07-20" |
| 6 | +slug: "2025-07-20-gsoc-25-nikhilbhatt-week07" |
| 7 | +author: "@/constants/MarkdownFiles/authors/nikhil-bhatt.md" |
| 8 | +tags: "gsoc25,sugarlabs,week07,nikhilbhatt" |
| 9 | +image: "assets/Images/GSOC.png" |
| 10 | +--- |
| 11 | + |
| 12 | +<!-- markdownlint-disable --> |
| 13 | + |
| 14 | +# Week 07 Progress Report by Nikhil Bhatt |
| 15 | + |
| 16 | +**Project:** [Git backend for MusicBlocks](https://github.com/benikk/musicblocks-backend) |
| 17 | +**Mentors:** [Walter Bender](https://github.com/walterbender), [Sumit Srivastava](https://github.com/sum2it) |
| 18 | +**Reporting Period:** 2025-07-13 – 2025-07-20 |
| 19 | + |
| 20 | +--- |
| 21 | + |
| 22 | +## This Week's Achievements |
| 23 | + |
| 24 | +### Backend: Project data end point |
| 25 | + |
| 26 | +- Created a new backend route that returns project data of projects without forking them `GET/api/github/getProjectData`. |
| 27 | +Earlier, when we used to click "Open in Music blocks" in the projects page, a shallow fork of the project (without all the project history) |
| 28 | +used to get created, the route helps in only returning the projectData which is loaded to musicblocks allowing students to see first and then |
| 29 | +decide whether to fork or not. |
| 30 | + |
| 31 | +- Custom description for the project - This change allows student to add descriptions to their projects, similar to what they did in the planet page. |
| 32 | + |
| 33 | +--- |
| 34 | + |
| 35 | +### Frontend: Forking projects & Student written Description for Projects |
| 36 | + |
| 37 | +- Fork Button in UI: Users now see a "Fork This Project" button while inside any project. |
| 38 | +- It also retains all commit history from the original repository in the fork. |
| 39 | +- Allows student to edit the forked projects in their own repo to work further on others projects. |
| 40 | +- Students can also enter the description for their projects when creating their projects, also visible in the projects page. |
| 41 | +--- |
| 42 | + |
| 43 | +## Challenges & How I Solved Them |
| 44 | + |
| 45 | +- **Challenge:** Handling local saved states for identifying projects with their keys. |
| 46 | + **Solution:** We are replacing the repoName and its key when a project is forked, discussion on this approach is still in progress. |
| 47 | + |
| 48 | +- **Challenge:** Managing clear separation between forking and opening a project in Music Blocks. |
| 49 | + **Solution:** Created a separate end point which only returns the projectData, no forking initially, will save loading time as well as un-necessary repository creation. |
| 50 | + |
| 51 | +--- |
| 52 | + |
| 53 | +## Key Learnings |
| 54 | +- Understanding the importance of UX clarity when introducing forking systems. |
| 55 | +- How forks inherit full Git commit histories and the implications for educational use-cases, reflective journey in particular. |
| 56 | +- Value of allowing students to describe their projects for documentation and self-reflection. |
| 57 | + |
| 58 | +--- |
| 59 | + |
| 60 | +## Next Week's Roadmap |
| 61 | +- Begin work on downloading and sharing of projects. |
| 62 | +- Conceptualise creating pull requests and an option to see them Music Blocks. |
| 63 | +- Discuss on working on multiple projects simultaneously. |
| 64 | + |
| 65 | + |
| 66 | +--- |
| 67 | + |
| 68 | +## Resources & References |
| 69 | + |
| 70 | +- [MusicBlocks Frontend Repo](https://github.com/sugarlabs/musicblocks) |
| 71 | +- [musicblocks-backend](https://github.com/benikk/musicblocks-backend) |
| 72 | +- [Octokit REST.js Library](https://github.com/octokit/rest.js) |
| 73 | + |
| 74 | +--- |
| 75 | + |
| 76 | +## Acknowledgments |
| 77 | + |
| 78 | +Thanks again to my mentors and the Sugar Labs community for feedback and support! |
| 79 | +Looking forward to next week’s frontend PR features. |
| 80 | + |
0 commit comments