So I started my journey with PublicLab last year with my first-timer contribution being adding the support for multi-repository contributors view in community-toolbox. That first contribution helped me learn about the project's code and its workflow to a great extent and seeing my work published on the live version of the website was the most satisfying feeling :).
That encouraged me to contribute more and I was getting more & more interested in the project with the passage of time. The best thing over all other good things is how newcomer friendly the project is. I've contributed to other open source organizations before but I've never found any organization having a whole project dedicated to helping newcomers and encouraging them. This is really how an open source organization should be, I thought. After contributing a little and making several first-timer-only issues I decided to apply as a mentor for Google Code-In 2018 which gave me a different perspective to look at things. It was a great experience and I came to know how to convey the message to another person so that he/she can actually follow up on it and not be more confused than before. I got so much to learn in such a short period of time which is the beauty of open source I believe.
I was having an awesome learning experience while contributing to community-toolbox, so it was during this summer, I thought of participating in Google Summer of Code '19 to expand my knowledge more and to experience how to build things with community support in the real world within deadlines. By far, I must say this is one of the best industry experience a college student can get.
Here are some of the things I implemented in my first month of participation,
- Refactoring the codebase (213), this helps in making the code more readable and maintainable. As the project is slowly growing, we needed this to be able to maintain and grow the site with the least possible hurdles. Here's the refreshed project's `src/` folder,
- Changed the source of the default welcome page to a config.json file (216). This enables any user/organization to adopt the project for their own needs.
- Added the list of stale issues across PublicLab (217). This will let people know if there's an issue across our org which hasn't been updated for the past 10 days so that any person can easily notice them & give their valuable inputs. Here's a screenshot of how it looks,
- Added a dropdown to navigate around repositories (219). This will let people navigate around repositories using the dropdown provided which aims to reduce user's effort of providing the repo name in URL.
- Added a night theme (221). This gives the user an option to switch to a dark/night theme and also remembers the user's choice of theme for his every visit
- Added a list of first-timer-only authors (225). This is added to encourage people to make "first-timer-only" issues and to appreciate everybody's effort which actually helps in welcoming new people to our organization. Here's a screenshot showing this,
- Changed urlHash.js source for compatibility (229),
- Added a copy to clipboard button for contributors' names in the contributors' section of the page (232). This feature enables everyone to copy the names of the contributors at once which is very useful in some use cases like when people want to mention/tag contributors in the check-ins.
There are many things in the making which will hopefully help community-toolbox to be a better place for people new to open source and for developers who want to contribute to the project, by making the code more readable and maintainable.