Skip to main content

GSoC-2022

· 4 min read
google-summer-of-code

Create a ready-to-go easy to embed mini-chat React component.

Project Abstract    Deliverables    Demo    Contributions    Blog    Mentor    Links

I got a chance to work on a project called EmbeddedChat which is an in-app chat solution to web applications needing a chat component to increase user engagement.

From just an idea (proposal) to a complete product - 3 months of Google Summer of Code passed.

I intend to maintain this repository as a final report summary of my GSoC work and a quick guide for all future GSoC aspirants.

⭐ Project Abstract

EmbeddedChat allows users to integrate RocketChat into their React web-based applications easily also providing an amazing developer experience while introducing in-app chat solutions.

🚢 Deliverables

The following are the deliverables of this project:

  1. Creation of UI using RocketChat Fuselage design system. [NEW]
  2. Providing real-time chat functionality using RocketChat node.js SDK. [NEW]
  3. Authentication using RocketChat’s Google SSO with an additional choice for <username, password> login (if the user already has an account). [NEW]
  4. Adding EmojiOne Emoji Picker to the component to ensure cross-platform functioning of emojis.[NEW]
  5. Using Rocket.Chat’s REST API to: [NEW]
  • Get channel details
  • Get the channel’s pinned messages
  • Get the channel’s starred messages
  • Get the channel attachments
  • Send a message to the channel
  • Get messages of the channel
  1. Providing the functionality to pin/star/react to any message and mention users. [NEW]

All of the above deliverables were completed within the GSoC period. Yay! 🎉

📺 Demo

Sneak Peak

randomgifec

Providing real-time chat functionality using RocketChat node.js SDK

https://user-images.githubusercontent.com/73601258/189498385-1346c5af-ec75-42a9-b864-f6f3b1e49d88.mp4

https://user-images.githubusercontent.com/73601258/189498400-942f337a-0ee8-48e5-b539-70dc49d1e3e7.mp4

Authentication using RocketChat’s Google SSO

https://user-images.githubusercontent.com/73601258/180390437-b28ceacb-7f3f-4b80-84c1-4e1709b6cd35.mp4

Adding EmojiOne Emoji Picker to the component to ensure cross-platform functioning of emojis.

image

Using Rocket.Chat’s REST API

Took an object-oriented programming approach to build this. Created an API wrapper that is super simple to set up. Here is the code.

Providing the functionality to pin/star/react to any message and mention users.

https://user-images.githubusercontent.com/73601258/189498498-602ddade-2883-43ac-91b7-9f63dc41cf84.mp4

https://user-images.githubusercontent.com/73601258/189498502-1310fb1c-293e-4bb4-a208-7b523dfdd23f.mp4

🚀 Contributions

PRs

PR LinkDescription
PR #1[NEW] initialize project and base setup
PR #4NEW: issue and pr template
PR #5IMPROVE: Responsiveness
PR #7NEW: sending and receiving msgs (the oop way)
PR #11Parsing emojis in message box
PR #12NEW: AUTH (google SSO)
PR #15NEW: Development documentation
PR #26[IMPROVE] UI/UX improvements
PR #40FIX: when host is https set useSSL as true
PR #41[IMPROVE] more options to be present whether or not its fullscreen
PR #46FIX: when cookies are there assume user present
PR #47CHORE: remove tech.co.html
PR #48Handling attachments
PR #44NEW: react to message
PR #42NEW: Pin and star messages
PR #39Add format to all files
PR #29NEW: CI/CD Pipeline to deploy the package

My overall contributions at Rocket.Chat

Besides my GSoC project I have been contributing prolifically to other Rocket.Chat projects - RocketChat.js.SDK, RC4Community, fuselage, Rocket.Chat.

😎 Blog

I have been writing blogs regarding my progress in GSoC.

🎓 Mentor

A big big thank you to my mentor for the guidance before and throughout GSoC. 🙏

I learned beyond GSoC from him and am forever grateful to be mentored by him.

  • Read my EmbeddedChat project proposal that got me accepted to GSoC here.

  • I also complemented it with Figma designs. Check them out here.

  • My GSoC Presentation can be found here.

  • Watch the above presentation in video - here !

❤️ Support

Learned something new today? Reciprocate the love. ⭐ this repo for good karma.

💬 Connect With Me

Want to discuss about GSoC / Rocket.Chat / Open-source ? Let's connect!

StudentSidharth Mohanty
OrganizationRocket.Chat
ProjectEmbeddedChat
GitHub@sidmohanty11
LinkedInsidmohanty11
Twittersidmohanty11
Blogssidmohanty11
Websitesidmohanty11.github.io
Emailsidmohanty11@gmail.com
Rocket.Chatsidharth.mohanty