My Google Summer of Code Exprerience: Weeks 1 and 2

I'm thrilled to share my exciting adventure as a participant in the renowned Google Summer of Code program. This opportunity has opened doors for me to learn, collaborate, and grow as a developer. Through this blog series, I'll be documenting my experiences, challenges, and victories during this coding journey.

In this first blog post, let's dive into the first two weeks of my Google Summer of Code experience. From the anxious wait before the program started to the exhilarating moments of starting my assigned project, every step has been filled with anticipation and enthusiasm.

So, I've been working on a command line tool called `bowtie` as part of my Google Summer of Code project. This tool is designed to validate different implementations, which are programs used to validate JSON schemas in different programming languages. Bowtie helps test how well these implementations adhere to a set of test cases in the Official Test Suite and generates a report indicating the validity of each implementation.

WEEK 1

My first task was to create a user-friendly JavaScript-based UI to visualize the report more intuitively. At first, I created a single-page UI using client-side JavaScript, which turned out to be quite a fun experience. However, later on, I rebuilt the UI using the React.js framework. Since I had the freedom to choose the framework, I opted for React.js because of my prior experience with it.

During the development process, I received tremendous support and feedback from the open-source community. In the beginning of the second week, I submitted a PR to showcase my progress. Julian, my mentor, expressed satisfaction with the progress and provided valuable tips on good development practices. I'm immensely grateful to Harrel, who offered extensive feedback for code improvement. Their unwavering support greatly boosted my motivation. This is the beauty of being part of an open-source community, and I would like to express my heartfelt thanks to everyone involved, including my co-mentors Benja and Pranav.

WEEK 2

During the second week, my main focus was on adding the remaining components to the UI. At this time, I encountered a couple of significant challenges. One of them was related to rendering SVG icons to display the adherence status (passed, failed, skipped) of the implementations. Another hurdle I faced was with Bootstrap's modal component. It took some time and experimentation, but eventually, I found a solution that worked effectively. These challenges highlighted the importance of patience, persistence, and the willingness to learn. Seeing the output of the long hours I put into the project brought me immense joy and satisfaction.

By the end of the week, the basic features of the UI were almost complete. In the following week, I successfully deployed the UI with all its basic functionalities. However, there were some interesting challenges during the deployment process, which I will cover in the next blog post.

To summarize, these two weeks were primarily dedicated to working on the UI. Throughout this process, I gained a better understanding and increased confidence in using React's 'useEffect' and 'useRef' hooks. I also learned the importance of maintaining a well-structured folder hierarchy to make the codebase more maintainable. Moreover, my skills in React and Bootstrap were polished, giving me a solid foundation in UI development.

That's all for this blog post. I hope you enjoyed reading about my journey so far. Thank you for your time and stay tuned for the next update!"