Skip to content

GSoC 2024 Submission ‐ Improve User Experience Using Jupyter Toolkit

Frédéric Collonval edited this page Aug 13, 2024 · 1 revision

Student: Mehak Jain (@Mehak261124)
Mentor: Frédéric Collonval (@fcollonval)
Organization: Numfocus

A short description of the goals of the project

This project aims to improve JupyterLab's user interface by integrating the Jupyter UI Toolkit into its core components. By using the toolkit's unified elements, the interface will become more consistent and easier to maintain, reducing maintenance overhead across the Jupyter ecosystem.

Tasks done

In my project, "Improve User Experience Using Jupyter Toolkit," I have completed 5 out of 10 subtasks. Of these, 3 PRs have already been merged, and I'm working on merging the remaining 2. I've integrated the toolkit's search, button, and tree view components into JupyterLab, and added various custom widget components to the settings editor. These components are designed to be flexible and customizable, enabling developers to easily incorporate them into their applications and create intuitive, user-friendly interfaces. This enhancement aims to improve the consistency and accessibility of JupyterLab's user interface, making it more streamlined and efficient for all users. I also added an icon component to the toolkit and utilized it in JupyterLab. Additionally, I plan to continue contributing to JupyterLab even after GSOC to ensure the full completion of my project.

The current state

I'm currently working on the 6th task, "Use toolkit icon for LabIcon," which focuses on integrating the toolkit icon component I developed in a previous task into JupyterLab. I've already raised a PR for this and am aiming to complete the task as soon as possible. What's left to do. There are 4 remaining subtasks, all focused on creating new components in the toolkit. Each of these tasks requires time to understand the behavior of the components and involves adding four files: one for stories, an index file, a file in the snapshots folder, and one for styling. I plan to continue contributing to JupyterLab even after GSOC to ensure the full completion of my project. What code got merged (or not) upstream.

The 3 PRs that have been merged are linked here.

Challenges or important things learned during the project

I faced significant challenges in getting my PRs merged, particularly because resolving visual regression test cases took a lot of time—one PR even took a month to merge. Throughout this process, I learned how to resolve conflicts effectively and realized the importance of asking questions without hesitation, regardless of whether the problem seemed small or big. I also improved my coding efficiency, particularly in the tech stacks I was using. Learning React and TypeScript for my project proved to be extremely beneficial.