- Name: Chandan S Gowda
- GitHub: chandansgowda
- Social Profiles: Linkedin | Twitter
- Organization: Australian Open Source Software Innovation and Education (AOSSIE)
- Project: Resonate - Open Source Social Voice Platform
During the Google Summer of Code 2023 program, my focus was on developing an open-source social voice platform named Resonate. The primary objective of the project was to create a collaborative environment that encourages community engagement and interaction. To achieve this goal, I undertook the task of architecting a comprehensive solution consisting of a Flutter App and a Node.js Express API, both seamlessly integrated with the powerful Appwrite backend infrastructure. This integration replaced the initially planned Firebase backend, allowing us to harness the robust features and capabilities of Appwrite. At the heart of Resonate's architecture lay the pivotal core feature: the seamless and immersive integration of Livekit, an open-source WebRTC Stack.Livekit formed the foundational pillar of the platform, serving as the bedrock for real-time audio communication.
- Flutter (Mobile Application)
- Node.js, Express.js (API)
- Appwrite (Backend)
- Livekit WebRTC Stack
My project encompassed the ground-up development of the platform, entailing the meticulous implementation/enhancements of the following pivotal features:
Conceived and executed the design and development of pivotal screens and widgets within the application framework. Noteworthy among these are the Home Screen, Profile Screen, Create Room Screen, Login/Signup Screen, Room Screen, Pair Chat Screen, and Pairing Screen.
Merged Pull Requests: #62, #52, #53, #55, #60, #116
Collaborated with a fellow contributor to cohesively craft and subsequently enhance the Resonate API endpoints responsible for Room Creation, Joining, and Deletion. This endeavor entailed a seamless amalgamation of livekit functionalities for server-side operations, encompassing tasks such as the creation and removal of livekit rooms, as well as token generation mechanisms.
Merged Pull Requests: #17, #20, #23, #27, #31
Efficiently transitioned the pre-existing functionality of Resonate from Firebase to Appwrite, a self-hosted backend server that presents analogous features and capabilities. This migration yields a host of advantageous outcomes, encompassing heightened oversight over the backend infrastructure, amplified scalability, and a diminished dependence on paid third-party services.
Merged Pull Requests: #66, #21
Effectively executed the implementation of Appwrite token validation as a preemptive measure before processing API requests. This strategic approach ensures that each API request is seamlessly accompanied by a valid Appwrite token, thereby significantly augmenting the security and overall data integrity during the exchange between the client and the server.
Merged Pull Requests: #34
Implemented a singleton HTTP client instance with authentication headers and interceptors, ensuring uniform API calls. Leveraged Chopper Generator for efficient HTTP client generation. Introduced ApiService class for seamless room management actions, tightly integrated with Resonate Backend API.
Merged Pull Requests: #71, #95, #112
Built controllers responsible for the creation, listing, and effective administration of audio rooms—undoubtedly the pivotal core feature of the project. As the development phase unfolded, these controllers underwent thoughtful refinements, optimizing pre-existing functionalities and incorporating fresh enhancements. This encompassed a spectrum of functionalities, ranging from the streamlined elimination of rooms, facilitation of access requests for speaking privileges, to the strategic expulsion of participants. Furthermore, real-time updates were seamlessly integrated, along with the systematic sorting of participants based on their designated roles within the room. This amalgamation of technical advancements underscores the project's evolution towards an enhanced user experience and a heightened operational versatility.
Merged Pull Requests: #77, #79, #90, #108
Effectively integrated Livekit with Flutter utilizing its SDK to seamlessly enable audio communication within the application. This integration serves a dual purpose, catering to both the audio rooms and pair chat functionalities, thereby enriching the overall user experience.
Merged Pull Requests: #101, #118
Implemented an augmented functionality enabling users to engage in serendipitous pairings with fellow users of interest. This feature facilitates spontaneous entry into audio pair chats conducted in their preferred language, affording users the discretion to either disclose or conceal their identity. This strategic enhancement bolsters user engagement and interaction dynamics, fostering an enriched collaborative environment within the application.
Merged Pull Requests: #116, #118, #37
9. Other Merged Pull Requests - Resonate App, Resonate Backend
A notable challenge that arose during the course of development pertained to devising a coherent workflow and strategic design for the implementation of both the pair chat feature and the room management functionality. This intricate task was further compounded by the utilization of Appwrite's real-time capabilities. To surmount this challenge, I proactively engaged with Appwrite's support team and sought insights from experienced developers who possessed a deep understanding of constructing applications with Appwrite. This collaborative approach allowed for the formulation of a judicious strategy that ensured optimal efficacy in the integration of these features within the platform's architecture.
Looking ahead, I plan to resolve a few known issues, analyze the feedback from Beta Testers and make necessary updates and work on cross-platform compatibility. I also aim to collaborate with the open-source community to gather feedback and identify areas for improvement.
I would like to express my sincere gratitude to my mentors Jaideep Prasad and Bruno Woltzenlogel Paleo at AOSSIE, who provided valuable guidance, feedback, and support throughout the GSoC journey. Their expertise and mentorship were instrumental in the successful completion of this project.
Participating in Google Summer of Code with AOSSIE has been an enriching experience that has not only expanded my technical skills but also allowed me to contribute to an open-source project with real-world impact. I am excited to continue my journey in the open-source community and explore further opportunities for collaboration and innovation.
Thank you to AOSSIE and the GSoC community for this incredible opportunity. It has been an enriching journey that I will carry forward in my career.
Chandan S Gowda