Google Summer of Code 2022

How to apply

Application for Google Summer of Code 2022 is now closed. See official Google Summer of Code site.
See official accepted projects and contributors for the list of projects this year.
For timeline, see Official Google Summer of Code 2022 Timeline for more details. Rocket.Chat is proud to be a participating open source organization for the Google Summer of Code 2022 program. This marks the exciting 6th year of participation with this 18 years-old program to usher in a new generation of open source contributors and enthusiasts. Almost anyone in the world over 18 years of age who loves coding and wants to explore the incredible world of open source can join us as a GSoC 2022 contributor.

Contacting Rocket.Chat

For general information, please visit our 24 x 7 community channel for Google Summer of Code 2022 : https://open.rocket.chat/channel/gsoc2022
Join our Google Summer of Code 2022 Team today and interact with over 300 like-minded contributors and meet the mentors in the 25 team channels.
If you have ideas and proposals that are not on our idea list, or if a mentor is not available, you can also email to:
Interested contributors are also encouraged to interact directly with our team and community on the team channels: https://open.rocket.chat/channel/google-summer-of-code/team-channels As well as on GitHub: https://github.com/RocketChat/Rocket.Chat
Those who prefers forums can post messages on our GSoC forum channel (although as the leading open source team chat project we prefer you use Rocket.Chat channels above to reach us instantly) : https://forums.rocket.chat/t/google-summer-of-code-gsoc/118

Latest update

Midterm evaluation completed (Update August 3rd)
Coding on projects continued throughout the month of July. And 13 out of the 14 projects have completed their midterm evaluations; contributors from the 13 projects have all passed midterm - and are now busy completing their projects. The remaining project actually has extended midterm evaluation at the end of August, and mentors are indicating the contributor has not been keeping up with the schedule at this time. All project participants are now preparing for the GSoC 2022 Demo Day virtual event to be held in late August.
Coding begins and new open source projects welcoming additional contributors (Update June 22nd) Coding has started for all our GSoC 2022 projects. Mentors are busy guiding contributors in completing the scheduled work. This year, uniquely, many of our projects are in independent open source repositories. We welcome our extended community and any new contributors to join these projects. See the table below for links to repository associated with each project. We are also planning a virtual conference at the end of the GSoC term - named GSoC 2022 Demo Day. Mentors and contributor from each project will collaborate in presenting the final result. Please stay tuned for more information in late July.
Project
Repository
Standalone Desktop Messaging cross-platforms Applet
Weekly Video Meeting and Archive App - BigBlueButton + Rocket.Chat
New Emoji Picker for Mobile Client
Rocket.Chat for Virtual Conferences - Eventyay integration
Figma App ( Rocket.Chat Integration )
ClickUp App for Rocket.Chat
Rocket.Chat ReactJS fullstack Component
Playground for UIKit ReactJS components
Rocket.Chat - Teams Bridge: interop with Microsoft Teams
Mentors welcome contributors from 14 accepted projects (Update May 20th)
2022 is a phenomenal year for GSoC at Rocket.Chat. With high calibre contributors arriving as early as January and very early enthusiastic community mentors support. So far, 137 new contributors have created 94 Merged PRs, 110 Open PRs, and identified 154 Issues for our projects. We received 83 GSoC 2022 proposals; most of them are of good to excellent quality. Google has graciously granted us a total of FOURTEEN projects for 2022 GSoC. Thank you Google! Mentors have started to welcome these 14 active contributing community members to work with us during the 2022 season:
Contributors
Project
Mentors
Ahmed Ibrahim
Standalone Desktop Messaging cross-platforms Applet
Jean Brito, Gabriel Casals
Aswini
Weekly Video Meeting and Archive App - BigBlueButton + Rocket.Chat
Debdut Chakraborty, Felipe Cecagno
Danish Ahmed Mirza
New Emoji Picker for Mobile Client
Diego Mello, Daniel Silva
Dnouv
Rocket.Chat for Virtual Conferences - Eventyay integration
Sing Li, Marcos Defendi
Evan Slack
Rocket.Chat Golang SDK
cauefcr, Aaron Ogle
Irfan Asif
Figma App ( Rocket.Chat Integration )
Douglas Gubert, Ivan Netto, Alvaro Mello
Mustafa Hasan Khan
ClickUp App for Rocket.Chat
Douglas Gubert, Allan Ribeiro
Nishant Patel
Message Forwarding
Douglas Fabris, Milton Rucks
Samad Khan
GitHub App
Rohan Lekhwani, Sing Li
sangyul.cha
Botpress Connector Enhancements
Duda Nogueira, Frank Dase
Sidharth Mohanty
Rocket.Chat ReactJS fullstack Component
Rohan Lekhwani
srrathi
Rocket Chat TUI
Aaron Ogle, Debdut Chakraborty
Vivek Srivastava
Playground for UIKit ReactJS components
Martin Schoeler, Guilherme Gazzo
Yuqing
Rocket.Chat - Teams Bridge: interop with Microsoft Teams
Gabriel Engel, Yash Rajpal, Fábio Albuquerque
Total of 83 proposals received (Update April 20th)
We would like to thank all of our enthusiastic contributors for the 83 proposals that we have received as of submission deadline on April 19th. Over the next few weeks, mentors for every project will be going through these proposals to determine the ones to accept. Accepted projects and contributors will be announced on May 20th 2022 by Google. Meanwhile, please continue to interact with our GSoC 2022 community of over 350 mentors and contributors in our team channel ; please continue to contribute to our ecosystem of repositories. As of today, 135 GSoC contributors have created 88 Merged PRs, 108 Open PRs, and identified 151 Issues in the Rocket.Chat ecosystem. Over the next week, we will announce an exciting special activity for those ranking at the top of our Contributors Leaderboard. Please stay tuned.

Proposal submission begins (Update April 10th)

Momentum for proposal submission is building up. As our GSoC 2022 community of 300 contributors and mentors continue to engage actively in the project specific team channels. Mentors for the various projects are in these channels to help contributors to craft their winning proposals. On our contributor leaderboard (which is also an open source project) , 116 contributors have added 75 Merged PRs, 105 Open PRs, and 141 Issues to our projects this season so far.

Successful Virtual Alumni Summit (Update April 6th)

We held our 2nd annual Rocket.Chat Google Summer of Code Alumni Summit on April 6th. It was exciting to bring back Google Summer of Code participants from our previous five years to speak and help this year's contributors in crafting their winning proposals. We have alumni from all walks of life speaking, see official poster for this event. There were 11 fascinating sessions and we welcomed a total of 156 unique individuals throughout the day at the summit. We expect hundreds more new contributors to benefit from the recorded sessions. All of the sessions are recorded and are available directly from our YouTube Playlist. The tips and best practices shared by our alumni apply to the entire Google Summer of Code contributors, and are not Rocket.Chat specific. We hope these recordings will benefit all those who intend to submit proposals this season.

Shout out to our early contributors (Update Feb 20th)

We are very thankful for the enthusiastic participation of our early contributors. The learning curve for Rocket.Chat's huge production code base is known to be very steep and they are getting a head-start even before the announcement of the GSoC 2022 program. Check out our GSoC 2022 Leaderboard, to see their amazing contributions: 31 Merged PRs, 69 Open PRs, and 83 issues. as of Feb 20, 2022.\

Project Ideas

This list is being updated regularly, some projects without assigned mentors may be removed.

Playground for UIKit ReactJS components

Mentors: Martin Schoeler, Guilherme Gazzo
Description: Develop an application/playground that allows developers to test UIKit ReactJS components and Interactions. Should allow developers to generate code used by Rocket.Chat apps and edit the content to preview the result
Desirable Skills: JavaScript/TypeScript, ReactJS
Goal/Deliverable: An on-line web app that features a construction playground for Rocket.Chat's UIKit ReactJS components. Plus code and preview generators.
Project Duration: 350 hours. (Large)
Difficulty: Medium

Tasks and workflow automation App with n8n

Mentor(s): Fongang Rodrique, Chris Skelly
Description: Tasks automation systems that compose workflow out of a chain of multiple on-line services is becoming very common and popular. Services such as Zapier and n8n are used by millions daily. n8n is one of the most popular open source alternatives available. This project involves the creation of a Rocket.Chat app that connects to n8n, enabling Rocket.Chat to participate richly in the n8n ecosystem. There is already an n8n node available. We want to extend this, with the help of a Rocket.Chat app, to support the rich feature set offered by Rocket.Chat.
Desirable Skills: Familiarity with Typescript and Rocket.Chat App development.
Goal/Deliverable: Rocket.Chat node in n8n and associated Rocket.Chat App
Project Duration: 175 hours. (Medium)
Difficulty: Medium

Rocket.Chat ReactJS fullstack Component

Mentor(s): Rohan Lekhwani
Description: Create a ready-to-go easy to embed mini-chat React component. This component should be configurable to use any public channel on a Rocket.Chat server. Authentication should be flexibly configurable to existing Rocket.Chat server token, or via an independent IDM or auth service. The challenge here is to create a futuristic full-stack component that bundles tightly coupled backend behaviours with standard front-end ReactJS components (from Rocket.Chat Fuselage ReactJS library) - creating an amazing developer experience when developing In-App Chat applications. Desired Skills: ReactJS component creation experience, understanding of Rocket.Chat server internals
Goals/Deliverables: Standlone mini-chat React component that can be easily installed into any ReactJS based web app
Project Duration: 175 hours. (Medium)
Difficulty: Medium

Chatbot Engine Connector: Botpress

Mentor(s): Frank Dase, Duda Nogueira
Description: Botpress is a popular open source framework for creation and execution of chatbots. This project extends a existing community-contributed Botpress connector to facilitate deployment of Botpress chatbots and omnichannel bots. Focus here will include - better rich UI/UX / interaction support for bots and ability to run multiple instances of multiple bots. Desired Skills: Javascript and Typescript development. Keen interest in Bots and Chatbots.
Goals/Deliverables: A Rocket.Chat App as a Botpress connector. A couple of example chatbots (running in a channel, and running in omnichannel) plus documentation.
Project Duration: 175 hours. (Medium)
Difficulty: Medium

Multi-bots support for Dialogflow App and Rasa App

Mentor(s): Murtaza Patrawala
Description: The idea here is to improve the existing Omnichannel Chatbot integrations (Dialogflow and Rasa), by allowing them to connect multiple chatbot accounts to a single Rocket.chat server. Right now, the app is only equipped to deal with a single bot which means users can only interact with a bot within a single domain and a single language. But, if we allow connecting multiple bots via a single app, then we can solve this problem, thus allowing companies to serve chatbots in multiple languages, across multiple domains, right from a single Rocket.Chat instance.
Desirable Skills: Familiarity with TypeScript development. Familiarity with Rocket.Chat App's development framework Goals/Deliverables: Framework supporting the connection of multiple Dialogflow/Rasa bots to a single Rocket.Chat instance.
Project Duration: 350 hours. (Large)
Difficulty: Medium

Rocket.Chat Golang SDK

Mentor(s): Cauê Felchar, Aaron Ogle
Description: Golang module to enable any Go packge to talk to a Rocket.Chat server with ease, making it possible to create from custom clients to bots.
Goals/Deliverables:
Project Duration: 350 hours. (Large)
Difficulty: Easy

Rocket.Chat for Virtual Conferences - Eventyay integration

Mentors: Marcos Defendi, Sing Li
Description: Create a totally open source end-to-end solution for planning, management and running of online virtual events. Investigate integration with FOSSASIA's Eventyay platform for even planning and management. Day of event conference handling should be done by integrating RC4Community's virtual conference NextJS component with open-event-next - or create an even tighter integration with RC4Community.
Desired Skills: ReactJS and NextJS development experience. Fluent with Python development. Good understanding of video conference technology (such as Jitsi) and realtime chat platforms (such as Rocket.Chat). Goals/Deliverables: Open source virtual conference system integrating Rocket.Chat and Eventyay.
Project Duration: 350 hours. (Large)
Difficulty: Hard

Standalone Desktop Messaging cross-platforms Applet

Mentor(s): Jean Brito, Gabriel Casals
Description: Create a simpler desktop application similar to the old Google Talk (see 2005 GoogleTalk UI here), is a simple channels list on a little window and each chat will open in another separated window, making it possible to talk with people without opening a big window. Making the usage of Rocket.chat more seamless. This project will make extensive use of Rocket.Chat's In-App Chat APIs (REST APIs).
Desired Skills: Familiarity with ElectronJS and TypeScript.
Goal/Deliverable: Standalone app that is deployable on all platforms supported by Electron - Windows, Mac, Linux, and more. The App will display a listing window for the channels and open each chat on another window, making the chat more popup-like.
Project Duration: 350 hours. (Large)
Difficulty: Medium

Omnichannel users identity verification

Mentor(s): Kevin Aleman, Martin Schoeler
Description: This project investigates and implements a new and "native" identity verification mechanism for Omnichannel end-users, such as Live Chat visitors who, depending on the use case, have to provide personal data like email addresses, etc. Rocket.Chat already has in place a similar confirmation mechanism for user verification, such as 2FA, email, etc. The contributor will have the freedom to propose ideas and design the best solution for the problem described.
Desired Skills: Familiarity with JavaScript development. Good understanding of the architecture of Rocket.Chat's omnichannel implementation.
Project Duration: 175 hours. (Medium)
Difficulty: Medium

IRC Bridge : improve ease of deployment and stability

Mentors: Gabriel Engel
Description: Rocket.Chat has long featured the ability to bridge directly witn IRC. IRC is still in use by many hard core technical open source communities all over the world, and this bridge is very important to many of our community users. However, since we started evolving our architecture to be more scalable, the IRC bridge has not been updated to match . As a result, it has become unstable in some edge cases and also difficult to deploy in scaled Rocket.Chat configuration. This project aims to improve the situation. The IRC bridge should be updated to be compatible with our scaled configuration. Extracting from core code base and repackaging as Rocket.Chat App or npm module should be investigated. Additional configuration/provisioning options and DevOps images will need to be created to improve the administrator's experience.
Goals/Deliverables: Familiarity with Typescript development. User of IRC and an understanding of how it works. An understanding of how Rocket.Chat scales.
Project Duration: 175 hours. (Medium)
Difficulty: Hard
Mentors: Ivan Netto, Tasso Evangelista, Gabriel Henriques
Description: Conversations in Rocket.Chat can be done in multiple ways but at this stage, we need a scalable interface which would help users to maximize their daily tasks within the software. The following improvements would speed up users' workflow:
  • Ability to collapse sidebar section;
  • Add rooms straight from the its section header;
  • Reduce the types of badge notifications, having to sizes will make the user interface more consistent and therefore, cleaner;
  • Changes in the margins/paddings, which will bring a more robust visual hirarchy and scanning/reading experience;
  • Changes in the colors to improve the readability.
Goals/Deliverables: Improve UX of daily basis tasks on a central touch point of the software.
Project Duration: 350 hours. (Large)
Difficulty: Medium

Message forwarding

Mentor(s): Douglas Fabris, Milton Rucks
Description: Implement the ability to forward messages to another channel, thread, or discussion. This is a high demand capability that is currently missing in Rocket.Chat. It can significantly improve the user's experience and her/his productivity. The scope of this project will be limited to the web application (not for mobile apps).
Desirable Skills: Familiarity with JavaScript and TypeScript development
Goal/Deliverable:
  • Being able to forward messages and files to multiple users and channels
  • Being able to add additional messages on the top of forwarded content
Project Duration: 350 hours. (Large)
Difficulty: Medium

Pomodoro Time Management App

Mentor(s): Debdut Chakraborty, Duda Nogueira
Description: With remote work now becoming the norm, lack of essential time management skills can throw off work/life balance and resulting in burn-out or dangerous mental wellness problems. Pomodoro is a proven and easy to adopt time management technique practiced by millions world wide. This project involves the creation of an always available Pomodoro timer Rocket.Chat App.
Goals/Deliverables: A Pomodoro timer Rocket.Chat App
Desired Skills: Familiarity with TypeScript development. User of the pomodoro time management technique
Project Duration: 175 hours (Medium)
Difficulty: Easy

Figma Integration (Rocket.Chat App)

Mentor(s): Douglas Gubert, Alvaro Mello, Ivan Netto
Description: This project brings Figma's life right into Rocket.Chat.
Desirable Skills: Familiarity with TypeScript development.
Goals/Deliverables:
  • being notified on
    • new comment on a file
  • replying and commenting in files right from Rocket.Chat
Project Duration: 350 hours. (Large)
Difficulty: Easy

Improve Navigation in Mobile Client

Mentor(s): Daniel Silva, Diego Mello
Description: Navigation is one of the most important parts of a mobile application. We've been using React Navigation as our navigation library and we need to update it from v5 to v6, which contains a few nice new features. The same applies to react-native-screens, which released support to Fabric recently. After these updates, we're planning to evaluate native-stack.
Desirable Skills: Experience with React Native and React Navigation.
Goals/Deliverables: Update react-navigation and react-native-screens to latest and apply native-stack
Project Duration: 350 hours. (Large)
Difficulty: Medium

Improve Mobile Client Animations

Mentor(s): Gerzon Canario, Diego Mello
Description: react-native-reanimated is the de facto animation library for React Native and they recently released their v2, changing the whole API to a more straight forward way. You're going to make use of this library to rewrite our animations from scratch. You're also going to apply Layout Animation on Android, a long-awaited feature. Desirable skills: Experience with React Native and react-native-reanimated v2. Preferred, but optional: the student needs a Macbook to test animations on iOS.
Desirable Skills: Knowledge of React Native and react-native-animated is preferred
Goals/Deliverables: Apply reanimated v2 to dropdown, RoomItem swipe and ImageViewer and apply LayoutAnimations from v2
Project Duration: 350 hours. (Large)
Difficulty: Medium

Mobile Client: Redesigned MessageBox

Mentor(s): Diego Mello
Description: We redesigned our Messagebox, also know as message composer, from scratch to make it easier to use, composable and following a more modern UX. You're going to implement gesture animations to record audio messages from the start. This is one of the most important components from our app.
Desirable Skills: Experience with React Native and react-native-reanimated. Required: Macbook to test iOS.
Project Duration: 350 hours. (Large)
Difficulty: Hard

New Emoji Picker for Mobile Client

Mentor(s): Daniel Silva, Diego Mello
Description: Actions sheets are a very common UX pattern used for users to interact with quick actions on a fast and easy way. react-native-bottom-sheet has growth a lot recently and it's been receiving love from the community. That's why we want to migrate to it. While doing this migration, we want to make dynamic, so we can render the emoji picker inside of it. You're going to be designing the new emoji picker from scratch.
Desirable skills: Experience with React Native.
Goals/Deliverables: Switch to https://github.com/gorhom/react-native-bottom-sheet, make it dynamic enough so it can render emojis picker. Apply the new design.
Project Duration: 350 hours. (Large)
Difficulty: Medium

Team Bridge: interop with Microsoft Teams

Mentor(s): Yash Rajpal, Fábio Albuquerque, Gabriel Engel
Description: Microsoft team is unquestionably the most popular and frequently used closed source team chat system in the world. Many administrators and users of open source Rocket.Chat team chat will have needs to bridge between their open source users and legacy users still on team. This project will create a Rocket.Chat App or an npm module that will act as a bridge between Rocket.Chat and Microsoft Team. Users on one system should be able to chat with the other through shared channels. Support for rich interactions including DM, emoji's, embedded graphics, shared youtube links and so on should also be supported. The exact scope for this project will be determined between the contributor and the mentors.
Desired Skills: Familiarity with Typescript and Javascript development. Familiarity with Microsoft Team's available APIs. An interest in crafting bridges between communications platforms.
Project Duration: 350 hours. (Large)
Difficulty: Medium

Rocket.Chat Text Terminal Client (TUI)

Mentor(s): Aaron Ogle, Debdut Chakraborty
Description: Rocket.Chat has desktop, web and mobile clients, time for a fourth, a TUI client. This project brings Rocket.Chat right into your terminal. By design this is to be extremely lightweight and blazing fast for basic functions, with the only noticeable latency source being the SDK calls.
Desired Skills:
Goals/Deliverables:
  • Authenticate against a Rocket.Chat server via TUI
  • List rooms and update real time
  • Being able to send and receive messages real time
  • Threaded conversations
  • Ability to create room resources like channels, private groups, discussions, direct messages
  • User mentions (including @all, @here)
  • No-UI slashcommand implementations (/create, /invite, /invite-all-from, /invite-to-from, /join)
Project Duration: 350 hours. (Large)
Difficulty: Medium

Weekly Video Meeting and Archive App - Big Blue Button + Rocket.Chat

Mentors: Debdut Chakraborty, Felipe Cecagno
Description: Big Blue Button is one of the most popular open source virtual classroom and conferencing tool available today. This project is a very simple integration with Rocket.Chat for conducting a weekly meeting and maintaining the recording video archive. Mentors will include both Rocket.Chat and Big Blue Button experts.
Desirable Skills: Familiarity with TypeScript development. Experience with AVideo.
Goals/Deliverables: A Rocket.Chat App that will enable users in a channel to join an existing weekly meeting if it is in progress. Or query for recorded meeting videos and view them.
Project Duration: 175 hours. (Medium)
Difficulty: Easy

Chatbot to improve agile workflow

Mentors: Tiago Evangelista, Gabriel Casals, José Paulo Petry
Description: Agile adoption is increasing year to year on the different industries. There is an opportunity to add agile package bots to help squad with reminders, links and facilitate attendance to meeting based on simple calendar inputs and emoji reactions. Candidate will be working with Agile experts and Engineers to build some solutions for this space and help improve team/squads productivity. Successful contributor will propose and implement a Chatbot that solves a problem in agile. Candidate have a free choice of technology to implement the chatbot - RASA, Botpress, Dialogflow, and so on.
Desirable Skills: Familiarity with TypeScript development. Demonstrated interest and/or passion in Agile and squad productivity tools.
Goal/Deliverable: A working chatbot that can improve agile team productivity
Project Duration: 175 hours. (Medium)
Difficulty: Easy

Zoho App

Mentors: Jorge leite & Marcelo Schmidt
Description: Zoho Employee is the revamp of the existing Zoho App. This integrates Zoho People with Rocket.Chat, and lets the users view and modify resources according to their accounts. Zoho People is a very capable employee management system, but opening Zoho for every little thing can get tedious in a busy schedule. This app will make this interfacing much easier, right from Rocket.Chat.
Desirable Skills: Familiarity with TypeScript development. Zoho REST APIs.
Goals/Deliverables: A Rocket.Chat App that is able to look up colleague details, see upcoming PTOs, apply for PTOs, and apply for reimbursements.
Project Duration: 175 hours. (Medium)
Difficulty: Easy

GitHub App

Mentor(s): Rohan Lekhwani, Sing Li
Description: GitHub is the largest centralized repository for hosting open source projects. This app will enable the users to perform many GitHub activities right from Rocket.Chat. Including query of issues and PRs, code modification logs, and announcement of events - such as new releases, PR merged, and so on.
Goals/Deliverables: Rocket.Chat App integrating common Github features
Desired Skills: Familiarity with TypeScript development. GitHub API
Project Duration: 175 hours (Medium)
Difficulty: Medium

DropBox App

Mentor(s): Sing Li, Debdut Chakraborty
Description: Dropbox is a file hosting service. You will create an app that will help the users manage their dropbox files easily directly from Rocket.Chat. Optional second part of the project entails making DropBox a possible storage provider for file uploads.
Goals/Deliverables: Rocket.Chat App with DropBox operations integrated Desired Skills: Familiarity with TypeScript development. DropBox API
Project Duration: 175 hours (Medium)
Difficulty: Medium

ClickUp App

Mentor(s): Allan Ribeiro
Description: ClickUp is an extremely feature rich collaboration and project management tool, used by many organizations. When used on a daily basis, going back and forth for the simple things like checking a task's status or changing that task's status can get tedious pretty quick. This app will make it easier for Rocket.Chat users to perform simple clickup tasks without having to leave the platform, making team communications more efficient, and team members more productive.
Goals/Deliverables: Rocket.Chat App with ClickUp integration features.
Desired Skills: Familiarity with TypeScript development. ClickUp API
Project Duration: 350 hours (Large)
Difficulty: Medium