Contributing to Open Source Project ChatCraft
Tags: opensource, typescript, react, webdev
Published: 2024-04-18 14:35:02

This semester has been a whirlwind of coding, collaboration, and learning as I dove headfirst into the world of open source development with [ChatCraft](https://github.com/tarasglek/chatcraft.org). My journey was marked by significant contributions, including 14 pull requests (PRs), the development of 4 major features, and the squashing of numerous bugs. Here's a closer look at what I've accomplished and the invaluable lessons I've learned along the way.

**Contributing to Open Source**

Open source projects like ChatCraft are the heart of the developer community. They thrive on the contributions of individuals who are willing to share their time and skills to improve the software for everyone. This semester, I was proud to submit 14 PRs to the project. Each PR was an opportunity to refine my coding abilities, engage with other developers, and make a tangible impact on the platform.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4whi2ms17a9sj707xadn.png)

**Major Feature Developments**

One of the most exciting aspects of my work this semester was developing and shipping four significant features that enhanced the functionality of ChatCraft:

- **Package and Ship TypeScript2OpenAI on npm**
I took on the challenge of packaging and shipping a TypeScript wrapper for the OpenAI API. This involved ensuring the package was robust, well-documented, and ready for community use through npm, the Node package manager.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3r47ylh2ae3i6bh0dump.png)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sp3l7ainfim3wcd9olz1.png)




- **Google OAuth Authentication**
Implementing Google OAuth was a major step forward in making ChatCraft more accessible and secure. By adding Google Login according to OAuth 2.0 for server-side web applications, users can now enjoy a streamlined sign-in process with the added security of Google's authentication system.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gmnotmznxf1b76soppg3.png)


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/teu99s18xigw8k0iqxbc.png)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mk7wrsnqa4yhjgss3lla.png)





- **Enable Python and Ruby Support Via Wasi**
Expanding the platform's language support, I enabled Python and Ruby coding through WebAssembly System Interface (WASI). This feature opens up new possibilities for developers who prefer or require these languages for their projects.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4m1t5xq5rratxmimgvjd.png)




- **Create Shared Feed**
To foster a sense of community and collaboration, I created a shared feed feature. This allows users to share their experiences, tips, and tricks with the wider ChatCraft community, enhancing the collective knowledge base.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rn2fyd7r123551egbms1.png)


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/unb7xm7wu1xjuihdccct.png)




**Bug Fixes and Problem-Solving**

No software is without its bugs, and part of my role this semester was to identify and fix various issues within ChatCraft. Tackling bugs is like a puzzle; it requires patience, a keen eye for detail, and a deep understanding of the codebase. Each bug I fixed was a lesson in troubleshooting and perseverance.



**Lessons Learned**

Throughout this semester, my work with ChatCraft has been more than just a series of tasks; it has been a comprehensive learning experience. Here are some key takeaways:

- **Collaboration is Key**: Open source development is a team sport. Working with others taught me the importance of communication, mutual respect, and shared goals.

- **Continuous Learning**: The tech world is ever-evolving, and staying current means being a lifelong learner. Each new feature and bug fix was a chance to learn something new.

- **Problem-Solving Mindset**: Developing features and debugging requires a problem-solving mindset. I've learned to approach challenges methodically and creatively.

- **The Joy of Sharing**: By contributing to an open source project, I've experienced the joy of giving back to the community and the satisfaction of seeing my work used by others.

In conclusion, my semester with ChatCraft has been an enriching chapter in my development journey. I've grown as a coder, a collaborator, and a member of the open source community. I'm excited to take these lessons with me into future projects and continue contributing to the vibrant world of open source software.