/Google-Summer-of-Code-23

Google Summer of Code'23 Report for Whiteboard Integration App for Rocket.Chat

Google Summer of Code (GSoC'23) Final Report

report-logo

GSoC Program Link : Whiteboard Integration 👨‍💻

Github Repo : Whiteboard App 🚀

Organization : Rocket.Chat 🌟

Mentee : Vinayak Sharma 👨‍💻

Mentors : Shiqi Mei 🌟 and Douglas Gubert 🌟

Project Summary

The Whiteboard Integration project enhances collaborative experiences in Rocket.Chat by introducing a powerful Whiteboard App. This integration facilitates real-time visual communication, making it easy for users to create and share diagrams, drawings, and more. With a user-friendly interface and features like slash commands and action buttons, users can effortlessly create and collaborate on whiteboards. The project also offers a convenient local setup guide, allowing users to deploy the app locally for testing. This integration adds a new dimension to communication within Rocket.Chat, fostering creativity and efficient collaboration.

Live Demo at GSoC 2023 Demo Day 🚀


Tap to View the Demo

Work Done ✅

- We can use slash commands or action buttons to start up a new whiteboard.

Screencast.from.18-10-23.10.43.12.PM.IST.webm

- We can store real-time previews of our boards.

Screencast.from.18-10-23.10.46.02.PM.IST.webm

- We can store external files like images in our records.

Screencast.from.18-10-23.10.47.17.PM.IST.webm

- We can modify settings to edit the board name.

Screencast.from.18-10-23.11.05.30.PM.IST.webm

- We can modify the permission system to make the board public/private.

Screencast.from.18-10-23.11.08.36.PM.IST.webm

Architecture of Whiteboard App:

Code Contributions 💻

PR Link Description Status
PR #3 [FEAT] Initialized Basic commands
PR #4 [FEAT] Initialized Webpack Excalidraw build
PR #11 [FEAT] Made Preview Block for Board
PR #14 [FEAT] Created Whiteboard Action Buttons
PR #15 [FEAT] Excaidraw Source code integration
PR #16 [FEAT] Integration Rocket.Chat-apis support in source code
PR #17 [FIX] Stable update for files and boards
PR #18 [FEAT] Settings modal
PR #19 [FEAT] Permission System
PR #20 [Chore] : Publishing App to Rocket.Chat marketplace
PR #21 [Chore] : Integration of Socket.io Source code

Challenges Faced 🤔

  • Iframe Inefficiency: Our initial Iframe approach lacked scalability and flexibility.

  • Webpack Transition: Adapting to Webpack for bundling and serving posed technical hurdles and learning curves.

  • Real-time Previews: Generating and storing real-time previews in base64 format demanded efficient coding and handling.

  • External Files Storage: Managing external files storage added complexity to the project's infrastructure and data handling.

Future Work 🔮

  • Implement Live Collaboration: Enabling live collaboration is a complex task because it involves integrating Excalidraw's collaboration features, which rely on websockets. However, there's a challenge because the Rocket.Chat App's Engine currently doesn't support sockets. The future goal here is to overcome this challenge and find a way to implement live collaboration, allowing multiple users to work on a whiteboard simultaneously and in real-time.

  • Implement a Context Bar: To enhance the usability and management of boards, the project aims to implement a Context Bar. This feature will provide a user-friendly interface for users to easily navigate and manage their boards. It could include options to switch between different boards, organize and categorize boards, and access board-specific settings. The goal is to make the user experience more intuitive and efficient when working with multiple whiteboards.

Acknowledgments 🙌

Mentors

  • Shiqi Mei 🚀: Your mentorship and expertise were instrumental in shaping this project. Your guidance steered me through challenges and inspired creative solutions.

  • Douglas Gubert🚀: Your mentorship and dedication to this project were truly remarkable. Your insights and feedback were invaluable in driving progress.

  • Rocket.Chat 🚀: I am grateful to Rocket.Chat for providing me with the opportunity to work on this project. Your commitment to open source and community-driven development is commendable.

My Fellow GSoC Participants

  • I'd like to extend my thanks to my fellow GSoC participants who shared their knowledge and experiences. Your camaraderie made this journey even more rewarding.

Family and Friends

  • To my family and friends who supported me throughout this endeavor, your encouragement and understanding were my pillars of strength.

Open Source Community

  • To the broader open source community, I'm thankful for the wealth of resources and collaborative spirit that enabled me to succeed in this project.

This GSoC journey wouldn't have been possible without the support and encouragement of these individuals and organizations. Thank you all for making this a truly enriching experience.

Connect with Us 🌐

Mentee: Vinayak Sharma Mentor: Shiqi Mei Mentor: Douglas Gubert
LinkedIn LinkedIn LinkedIn
GitHub GitHub GitHub