Week 3 - Learning to Contribute and an Extension

Reworking My Work:

Some open source projects are difficult to support. Sure, they tell you how to contribute, but they don’t tell you how to contribute. Their code-bases are massive, and everyone contributes different points of view to their teams.

Two weeks ago I had an idea for something I could add to Keycloak. So I read through their contribution documentation, made an issue, forked the repository, pushed my changes, made a pull request, and was told to implement it differently.

I had proposed we add a text field above the drop-down selectors, explaining each option. The maintainer who reviewed suggested that instead, we could add descriptions beneath each option in the drop-down. This solution is much cleaner and only shows the information when you need it, whereas mine showed it by default.

So I rolled back my work started poking around the code-base again. Working on a project of this scale is intimidating, so my goal was to get this done with as few files and lines of code modified. The current drop-down menu uses a file called SelectControl.tsx, which allows for options to include a key and a value. So I added a string field for descriptions. And I made it optional. Then I made sure the classes that handle it’s front-end rendering properly display it.

Image of updated UI with theme descriptions

Right now I’m waiting on feedback. Sure, I may have to write it again and use a different approach. But I’m learning and having a good time.

Starting an Open-Source Project

We were given the opportunity in class to begin working on our own open-source project. Divided into teams, we explored how to create a Firefox extension. Following that class, my team and I began brainstorming ideas for an extension we could make ourselves.

We are students, and sometimes we don’t get the best grades. Nothing is worse than opening the assignment portal for your class and not seeing the score you wanted. It is in that realm we want to work in. Because almost every class uses a different platform for submitting work (Gradescope, Ed, Brightspace, etc.), we decided to settle on the first: Gradescope. It is used by professors in both the Math and CS departments at NYU, and of course we want to use our own product.

Currently, our team is facing the problem of scheduling. We need to work asynchronously. Fortunately, we were able to quickly decide on the direction we wanted to go in, and setup communication channels. As the project is still in early stages, my contribution has been to setting up documents in the repository (README, CONTRIBUTING). Currently we are deciding on which license we would like to apply to the project. In the next coming days, we will begin development and working towards a presentable demo.

To view the repositroy, navigate here.

Written before or on February 9, 2026