Skip to content

Latest commit

 

History

History
950 lines (635 loc) · 57.7 KB

google-summer-of-code-2023.md

File metadata and controls

950 lines (635 loc) · 57.7 KB

Google Summer of Code 2023

Google Summer of Code 2020

How to apply

Application for Google Summer of Code 2023 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 2023 Timeline for more details.

Rocket.Chat is proud to be a participating mentoring open source organization for Google Summer of Code 2023. This marks the exciting 7th year of participation in 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 agewho loves coding and wants to explore the incredible world of open source can join us as a GSoC 2023 contributor.

For details and rules of Google Summer of Code 2023, please see the GSoC 2023 Official Website. For timeline, see Official Google Summer of Code 2023 Timeline for more details.

Contacting Rocket.Chat

For general information, please visit our 24 x 7 community channel for Google Summer of Code 2023 : https://open.rocket.chat/channel/gsoc2023

Join our Google Summer of Code 2023 Team today and interact with over 830 like-minded contributors/mentors and meet the team in the 48 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:

gsoc+2023@rocket.chat

Interested contributors are also encouraged to interact directly with our team and community on the team channels:

https://open.rocket.chat/channel/gsoc2023/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).

Latest update

Update May 11th, 2023 Mentors welcome contributors from 10 accepted projects

2023 is a great year for GSoC at Rocket.Chat. With high calibre contributors arriving as early as January and a record number of returning GSoC alumni as mentors. So far, 332 new contributors have created 85 Merged PRs, 86 Open PRs, and identified 203 Issues for our projects. We received 197 GSoC 2023 proposals; most of them are of good to excellent quality. Google has graciously granted us a total of TEN projects for 2023 GSoC. Thank you Google !

We are delighted to announce that EIGHT of the mentors participating in these ten selected projects are former GSoC contributors, now valuable and well respected Rocket.Chat community members.

Mentors have started to welcome the following 10 new contributing community members to work with us during the 2023 season:

Contributor Project Mentors
Disha Bhardwaj Introduce Captcha to Livechat Widget Murtaza Patrawala, Renato Becker, Kevin Aleman
abhinavkrin Embedded Chat 2023 Sidharth Mohanty
Henit Chobisa Next Generation Desktop Apps on Tauri Jean Brito, David Alen
M. Palanikannan Google Summer of Code Community Hub Dhruv Jain, Dnouv, Hugo Costa
AdityaSingh-02 Guided RC Code Walkthrough and Tutorial Kevin Aleman, Sing Li
Mohd Sameer Miro App for Rocket.Chat Mustafa Hasan Khan, Rafael Tapia
Nabhag Motivaras Integrate Notion via RC App Samad Yar Khan, Bárbara Zanella
Shubham Bhardwaj Scaled Botpress Connector Duda Nogueira, Yash Rajpal
Vinayak_Sharma Whiteboard Integration Shiqi Mei, Douglas Gubert
Vivek Srivastava UiKit Playground 2.0 Douglas Fabris, Guilherme Gazzo

An exceptional thing happened during the 2023 GSoC season, several active contributors have approached us, and even though their project has not been selected this season, decided to contribute their time in this summer to open source --- and help us make the project a reality.

We are grateful to these sort of effort and welcome these contributors with full open arms. These cases fully illustrate the value and effectiveness of the GSoC program to open source in general.

After the official announcement of the GSoC results, we conducted a tutorial session on How to create effective PRs, working with Git and Github. It was absolutely the best attended live tutorial session in the entire 2023 season, with 23 contributors/attendees taking advantage of the session.

Update April 27th, 2023 App Development Code Walkthrough and Finalizing Proposal Reviews
Mentors have finalized their reviews and we held another popular code walkthrough (rocket.chat app development) this past Saturday. Thanks goes to the 17 community attendees of this live weekend session. As of April 27th, our 331 community contributors have contributed a record-breaking 83 Merged PRs, 84 Open PRs, and 201 Issues. to our ecosystem. Everyone is looking forward to the May 4th project announcements. \

Update April 10th, 2023 Holiday weekend Code Walkthrough.
While mentors continued to review the proposals we have received, we held a code walkthrough (How to add a REST API endpoint in Rocket.Chat server) session to help our community contributors over the Easter holiday weekend. Thanks goes to the 19 attendees of this live Saturday afternoon (night) session. \

Update April 5th, 2023 Record-breaking 197 proposals received from our community !

Thank you (to the 811-members-strong Rocket.Chat GSoC 2023 community) for the unprecedented support for open source and for the Rocket.Chat organization in particular ! We have received a total 197 proposals this year - far exceeding the total of 83 proposals from 2022.

Mentors will be busy reviewing the proposals over the next weeks. We will continue to engage and interact with the community and sub-communities (around the different projects) with fun and learning events this month. Stay tuned. \

Update April 3rd, 2023 Amazing 800-strong Rocket.Chat GSoC 2023 community !

Community growth momentum continued with us reaching 800 global members this week. Thank you everyone for your kind support for open source and Rocket.Chat !

This week we held our annual Rocket.Chat Google Summer of Code Alumni Summit 2023 In this event, we invited GSoC alumni from our past six years to come back and share their open source impacted life experiences and also some GSoC tips with this year's contributors. We had great response - 7 alumni held sessions throughout the day and 110 attended the live sessions**.** The event is recorded and is now avaialble for all.

As submission deadline approaches, we now have 33 mentored project ideas with 30 mentors and 8 of our mentors this year are GSoC alumni from prior years!

With a whole day before submission closes, we have already received 103 proposals - far exceeding prior year's final count.

As of this week, we have 330 code contributors on our contributors leaderboard. Responsible for 69 Merged PRs, 80 Open PRs, and 187 Issues!\

Update March 28th, 2023 Thanks to our SEVEN HUNDRED and FIFTY strong community!

Momentum of community growth continued throughout the week. **** Now, the Rocket.Chat GSoC 2023 community stands at an unprecedented 750+ globally diverse members collaborating 24 x 7 at our GSoC 2023 Team Channels.

Almost everyone is fully engaged with their mentors in discussion of the THIRTY MENTORED PROJECT IDEAS this week. Mentors are busy helping contributors and reviewing early drafts of proposals. Some contributors have already submitted proposal through their GSoC portal - as of this week we have received 30 early proposal submissions.

A large group of mentors assembled to run a Proposal Workshop over the weekend to help contributors in writing their proposals and to show them how mentors typically select the winning proposal. The event was extremely well received with over 47 attendees. Many of them shared their work-in-progress proposals for in-session live review. Thanks go to all the contributors for supporting this event and to the tireless mentors showing up Sunday early morning to help our keen contributors.

As of this week, we have 314 code contributors on our contributors leaderboard. Responsible for 68 Merged PRs, 70 Open PRs, and raising 173 Issues!

Update March 21st, 2023 Shout out to our 2023 community of SIX HUNDRED !

Proposal submission is now open! We are extremely grateful for the enthusiastic participation and support of our contributors. The learning curve for Rocket.Chat's huge production code base is known to be extremely steep and many of them are getting a head-start even before the announcement of the GSoC 2023 program. Joining us as early as January this year!

Currently, the Rocket.Chat GSoC 2023 community stands at an unprecedented 670 globally diverse members collaborating 24 x 7 at our GSoC 2023 Team Channels.

To accommodate this huge community of interested new contributors we have an unprecedented 43 new innovative project ideas for them to choose from. The list of ideas is consolidated down to 25 active ideas on March 21st based on contributors' interest and mentors' availability. We currently have 27 mentors working with the new contributors, 6 of our mentors are actually prior year Rocket.Chat GSoC alumni ! We are extremely proud of our mentors community this year.

We have conducted multiple live Ask Me Anything (resolving general GSoC logistic questions) sessions as well as Code Walkthrough sessions for back-end, front-end, apps (and much more). Sessions were all well received with 10 to 25 new contributor attendees each.

Check out our GSoC 2023 Contributors Leaderboard, to see their amazing contributions: 55 Merged PRs, 44 Open PRs, and 141 Issues as of March 21st, 2022.\


Project Ideas

This current project ideas list is below, with full mentor assignments. Due to the large number of mentors, ideas and contributors this list may still be subjected to minor changes.

Whiteboard Integration

Mentor(s): Shiqi Mei, Douglas Gubert

Description:

White boards and visual drawing/concepts sharing has become a stable of team collaboration. Rocket.Chat currently does not offer any whiteboarding feature. Markboard is an open source incumbent whiteboard created upon the same technology stack as Rocket.Chat and built by a team led by a Rocket.Chat GSoC alumni. This project will create a Rocket.Chat App that integrates Markboard into Rocket.Chat and extends its team collaboration features through Rocket.Chat.

Desired Skills: Advanced Typescript. MeteorJS. Rocket.Chat Apps development.

Goals/Deliverables: Rocket.Chat App integrating Markboard into Rocket.Chat. The App should extend team collaboration capabilities of Markboard in conjunction with our Team Channels feature.

Project Duration: 350 hours. (Large)

Difficulty: Advanced

Guided RC Code Walkthrough and Tutorial

Mentor(s): Kevin Aleman

Description:
Most Rocket.Chat developers uses VSCode when studying our massive production code base, and when writing new code. VSCode is the best environment for conducting interactive tutorial and code walkthroughs. The CodeTour extension available in VSCode can be used to create such walkthrough and tutorials. This project involves the development of a set of guided tutorials using CodeTour that will help new developers to understand how to perform multiple actions. Paths to be documented will go from this areas:

  • How a message is sent
  • How to create an endpoint
  • How to add a new service
  • How to create a DB model
  • How to use DB models
  • How services interact between them
  • How to build a lib
  • How to navigate monorepo (where is everything, how's imported, etc)

We welcome any additional ideas you may have.

Desired Skills: NodeJS, MongoDB

Goals/Deliverables: A set of guided tours from the topics described above

Project Duration: 175 hours. (Medium)

Difficulty: Easy/Medium

Flutter SDK for Rocket.Chat

Mentors: Sing Li, Debdut Chakraborty

Description:
In recent years, Flutter has became the de-facto standard for high performance open source multi-platforms apps development. Thanks to its huge global developers community and the ever-growing ecosystem of open source flutter components.

This project aims to create an easy to integrate flutter component to embed Rocket.Chat into any existing and new flutter applications (similar to our existing EmbeddedChat project). In addition, a layer of Dart friendly API/stub needs to be created for application that needs in-depth modification of chat behavior or needing to use the chat engine as a messaging fabric.

We invite and welcome original proposals at varying level.

Desired Skills:

Flutter, Flutter components construction, Dart, JavaScript. A thorough understanding of how Rocket.Chat core works. Knowledge of Flutter multi-platform development (Android, iOS, Linux, Windows and MacOS).

Goals/Deliverables:
An SDK that enable easy embedding of RC instances into any flutter app plus Dart APIs to access RC collaboration engine internals.

Project Duration: 350 hours (Large)

Difficulty: Advanced

Mobile App Share Extension Update

Mentors: Daniel Silva

Description:
Rewrite our current mobile apps share extension in Swift for iOS and Kotlin for Android, making sure that it supports the latest ReactNative Fabric architecture.

Desirable Skill: Advanced ReactNative. Good knowledge of native iOS and Android development. Passion for creating great mobile experiences.

Project Duration: 175 hours (Medium)

Difficulty: Advanced

Scaled botpress Connector

Mentors: Yash Rajpal

Description:
botpress is a highly popular open-source chatbot construction kit and one of the pioneers in that field. Rocket.Chat has long worked with botpress with a variety of connectors, including one currently in our Marketplace.
However, these connectors are relatively simple and applicable to very basic in-channel interactions - typically servicing a few users or channels only.
This project aims to create a new botpress connector app that will work and scale with new microservices architecture to deliver:

  • multiple (hundreds) of bots running concurrently and user-friendly way of managing them
  • support for every aspect of omnichannel operation
  • improved rendering of messages
  • introduce new APIs that can fascilitate chatbot operation
  • be the de-facto full-featured example on how to interface Rocket.Chat to a Chatbot platform

Desired Skills: Typescript, Rocket.Chat Apps, botpress internals, Rocket.Chat Apps.

Goal/Deliverable: A working botpress connector suitable for deployment of production Chatbots at scale.

Project Duration: 350 hours. (Large)

Difficulty: Medium

Improved Rocket.Chat Translations (i18n)

Mentors: Douglas Fabris

Description: Rocket.Chat is widely used all over the world in multiple languages. Having a welcoming and vibrant community of translators and reviewers is essential to make sure we can deliver the best localization possible.

This project aims to both convert today's i18n to work with community friendly open source translation platform such as weblate and kick-off a translation community.

Desired Skills: Advanced Typescript. Familiarity with i18n platform and technologies, weblate preferred.

Goal/Deliverable:

  • Rocket.Chat's i18n working with weblate hosting our community of translators.
  • Documentation on how to contribute with Rocket.Chat with translations

Project Duration: 175 hours. (Medium)

Difficulty: Medium

Miro App

Mentors: Mustafa Hasan Khan, Rafael Tapia

Description:

integrate Miro features into Rocket.Chat for daily use by team collaboration users. It should include as a minimum for collaboration teams to:

* use PlantUML to create boards
* assign boards to channels and team channels
* create sticky notes and pin to channel
* receive notifications directly if someone is mentioned on Miro
* other innovative features of your choice

Desirable Skills: JavaScript/TypeScript, ReactJS, MIro APIs

Goal/Deliverable: Working Miro Rocket.Chat App supporting team collaboration users.

Project Duration: 175 (Medium)

Difficulty: Easy/Medium

Moderation Console Mute User Action and Emoji Votes

Mentors: Devanshu Sharma

Description:
Moderation console for Rocket.Chat enables moderators to examine reported messages and then take action against the individuals who post them. A simple set of action is already included. In this project you will add the action to allow muting of the user for a specific duration.

Currently, the only way to submit messages for moderator's review is to report the message. This project will add a mini-reputation system, through voting with special emojis, to assist the moderator in deciding what to do with the reported user. A count of special emojis against a message can be used to determine the number of users that find a particular message offensive.

Desired Skills:
ReactJS, TypeScript, MeteorJS. A thorough understanding of Moderation Console operations. Knowledge of how to expose additional core features to Apps.

Goals/Deliverables:
Mini-reputation system enabling users to mark messages using special emojis. Additional action for moderation console allowing user to be muted by moderator for some durations (5min, 1 hour, or any custom minutes)

Project Duration: 175 hours (Medium)

Difficulty: Easy/Medium

Embedded Chat 2023

Mentors: Sidharth Mohanty

Description:
A Rocket.Chat channel can be embedded into some existing web application via the Embedded Chat component. Currently, the available integration surface and features of Embedded Chat is rather limited. This project aims to significantly expand the applicability of Embedded Chat for a wider range of web applications - including the most popular frameworks such as Vue, Angular, Svelte, React Native; and hosting platforms such as WordPress and Ghost; web application developed in Java, PHP and Python. Embeddability via HTML . Customizability needs to be improved with theme kit, as well as a way to enable users to supply custom CSS. Features we still need includes the support of all authentication methods that the hosting server has activated, file/media attachments, sending audio messages, autocomplete mention search, and in-chat RC-App slash-command access. Realtime messages transport needs to be improved to avoid 429. Last but not least, we need to greatly improve the first-time developer experience by supplying better server startup, testing, and e2e testing devops and via gitpod-ization.

Desired Skills: React and NextJS. Absolute in-depth knowledge of Embedded Chat project. Thorough understand of modern web application development platform and technologies.

Goal/Deliverable: Embedded Chat working with most current web application building technologies, and updated with missing essential features. Ideally also improved realtime transport as well as first-time developer experience.

Project Duration: 350 hours. (Large)

Difficulty: Medium

Mobile Media Carousel Component

Mentors: Diego Mello

Description:
Implement a new mobile media carousel component that can:

  • open any media (image, video, audio, doc, etc)
  • swipe horizontally to navigate to previous/next
  • support async delayed video playback semantics

Desirable Skills: Advanced Typescript, advanced React Native.

Goal/Deliverable: A media carousel component for our mobile apps.

Project Duration: 175 hours. (Medium)

Difficulty: Medium/Advanced

GitHub Pull request reminders app

Mentors: Murtaza Patrawala, Samad Khan

Description:
Have you ever faced challenges keeping track of your pull request reviews as a student? This is a common problem faced by many development teams. That's why we propose developing a pull request reminder app for Rocket.Chat as a part of the Google Summer of Code program. For now, we’re isolating the scope of this project to GitHub.

The app's goal will be to provide regular reminders and updates to keep the review process moving and help ensure that pull requests are being reviewed and discussed in a timely manner. This project will be built on top of this existing GitHub App which already has a bunch of boilerplate code to deal with authentications and GitHub APIs.

One approach to solving the issue of pending pull requests is to create a separate Rocket.Chat channels for each pull request (This is a proven strategy organizations already use on Slack. Check here for more info). This way, all relevant stakeholders can be added to the channel, including the author of the pull request, the reviewers, and any other team members who need to be informed about the status of the review.

The Rocket.Chat channels can serve as a dedicated space for discussion and collaboration around each pull request. Users can receive notifications about updates to the pull request, such as new comments or changes to the code. This helps keep everyone informed and ensures the review process stays on track.

Example text message for Rocket.Chat channel:

  • "🔔 Attention reviewers! This pull request has been pending for [number] days now. Let's make sure to give it the attention it deserves and keep the review process moving forward 🚀"

In addition, the users can also opt-in to receive a direct message from the bot at the start of their workday, with a comprehensive list of all the reviews that need his/her attention.

Example DM text messages:

  1. "👀 Time to give those pull requests some love! You've got [number] pending review(s) waiting for you. Don't keep your fellow developers waiting 😊"
  2. "🔔 Don't let those pull requests get forgotten! You've got [number] waiting for your review. Let's get to work 💻"
  3. "🚀 It's time to move those pull requests forward! You've got [number] waiting for your review. Give them the green light 💚"

By using Rocket.Chat channels to manage the review process, teams can improve the visibility of their pull requests and ensure that they are being reviewed and discussed in a timely manner.

PS: For more inspiration on how to solve this issue, please refer to some of these solutions on other platforms.

Desirable Skills: Advanced Typescript; Knowledge about Github API's; Rocket.Chat app-engine Framework; Familiarity with existing Github App

Goal/Deliverable: A working Rocket.Chat app which sends pulls request reminders to Rocket.Chat users.

Project Duration: 175 hours. (Medium)

Difficulty: Easy/Medium\

Enhanced media handling for mobile message composer

Mentors: Daniel Silva

Description:

This project consists of two major tasks:

  • Copy any media from other platform apps to the message composer (on mobile)
  • Add option to copy media to platform clipboard (on mobile)

    The implementation should operate across all the mobile platforms that Rocket.Chat support. Including iOS and Android, form factors from phone to tablet.

Desired Skills: Advanced Typescript, advanced React, advanced React Native.

Goal/Deliverable: Composer ability to accept copy/paste media from other platform apps and the option to copy media to clipboard.

Project Duration: 175 hours (Medium)

Difficulty: Medium/Advanced\

Introduce Captcha to Livechat Widget

Mentors: Murtaza Patrawala, Kevin Aleman

Description:
RocketChat is a popular open-source communication platform, but it is not uncommon for spammers to take advantage of its live chat widget to send unwanted messages. To mitigate this issue, a CAPTCHA solution should be implemented in the live chat widget. This project aims to integrate a CAPTCHA mechanism in RocketChat's live chat widget to prevent spam messages from being sent.

The solution should allow users to prove that they are human by completing a simple CAPTCHA task before sending a message. This will help to reduce the number of spam messages and improve the overall user experience.

Key Deliverables:

  • Integration of a CAPTCHA solution in RocketChat's live chat widget
  • A comprehensive testing suite to ensure that the CAPTCHA is working as expected
  • A user guide to help users understand how to use the new CAPTCHA feature in the live chat widget

Note: The CAPTCHA solution should be accessible to all users, including those with disabilities, and should not negatively impact the user experience.

Desirable Skills: React (Mid-level); Familiar with Rocket.Chat Livechat

Goal/Deliverable: Captcha integrated within Livechat widget

Project Duration: 175 hours. (Medium)

Difficulty: Easy/Medium

Live Preview Message Composer

Mentors: Hugo Costa, Martin Schoeler

Description:
Make the message composer live preview feature instead of just adding markdown tokens that styles/parse the message in the Message List.

E.g: If the user press Bold button in the message composer actions that has the message "Test Message" or wrap the message in asterisk nowadays it shows:

Current output: *Test Message*

Desired output: Test Message

Desirable Skills: Typescript (mid) and React (mid)

Goal/Deliverable: Live preview in message composer

Project Duration: 175 hours (Medium)

Difficulty: Easy/Medium

Agile BOT

Mentors: Gabriel Casals & Tiago Evangelista

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/Medium

Token Economy for Team Channels

Mentors: José Paulo

Description:
Rocket.Chat has Team Channels to handle sub-communities wanting autonomous control over their membership within a scaled server (possibly servicing tens of thousands of users).

This project aims to provide such sub-communities / teams with a mean to:

  • mint their own erc-20 token, unique to the team
  • distribute the tokens to the members of the team
  • enable tokens to be securely exchanged between members within the team channels

The implementation can also work optionally with blockchains and tokens from other providers - but this is not mandatory. Integration with a wallet is implied but novel alternative solution will also be accepted. It can be implemented as a Rocket.Chat App or extension to core, or both.

Desirable Skills: Thorough understanding of Rocket.Chat core. Working experience with modern Web3 / blockchain technologies. Rocket.Chat App development experience. Advanced Typescript

Goal/Deliverable: Ability to mint, distribute, and exchange unique erc-20 tokend within a "team".

Project Duration: 350 hours. (Large)

Difficulty: Medium/Advanced

Off the Record Messaging for Mobile (OTR)

Mentors: Reinaldo Neto, Daniel Silva, Diego Mello

Description:
Off the Record Messaging is a very popular and well loved feature of Rocket.Chat desktop and web client. It enable two parties to securely exchange encrypted message while both side are online, and not have the encrypted conversation be persisted in the chat history. However our mobile app currently does not support this. This project will add OTR support to our mobile apps.

Desired Skills: Advanced ReactNative. Knowledge of native Android and iOS app development.

Goals/Deliverable:
OTR working on both iOS and Android apps.

Project Duration: 175 hours (Medium)
Difficulty: Medium\

AI Moderation APP

Mentors: Rafael Tapia

Description:

Offensive/sensitive content detection by AI. Ideally both images/text will be processed. Proposals that extend the existing work on the AI Moderation project, as well as brand new approaches will be welcomed. Proposal should also address scaling and cost of the solution.

Desirable Skills: TypeScript(mid), TensorFlow(mid)

Goal/Deliverable: An app that uses TensorFlow AI to verify images/texts and flag them when has harmful, toxic, or offensive content and block.

Project Duration: 175 hours (Medium)

Difficulty: Medium/Advanced

UiKit Playground 2.0

Mentors: Guilherme Gazzo, Tasso Evangelista Pinto, Diego Sampaio

Description:
Rocket.chat UiKit is the protocol/tool that allows rocket.chat apps to add new (both web and mobile) elements to the current UI.

People often do not imagine what is possible to do with the protocol. That's why the playground idea.

Nowadays we already have a version of the playground, so it is already possible to visualize the main functionalities, but it is still not the full experience desired.

Desirable Skills: TypeScript, React

Goal/Deliverable: The objective is to add other functionalities that improve and encourage the development of apps. Features such as templates, workflows simulation, connecting to a workspace and also sending/sharing the prototypes through rocket.chat are the main goals of the project

Project Duration: 350 hours (Large)

Difficulty: Medium/Advanced

Integrate Notion via RC App

Mentors: Bárbara Zanella, Samad Khan

Description: Create pages and receive notifications inside Rocket.Chat

Desirable Skills: JavaScript/TypeScript, ReactJS

Goal/Deliverable: Work as if you were creating documents in notion without leaving Rocket.Chat

Project Duration: 175 hours (Medium)

Difficulty: Easy/Medium

Summarizing Live Chat Conversations using OpenAI's ChatGPT

Mentors: Lester Coyoy, Murtaza Patrawala

Description:
The goal of this project is to develop a solution that utilizes OpenAI's ChatGPT to generate a concise summary of live chat conversations within Rocket.Chat. This will provide managers with a quick and efficient way to stay up-to-date with live chat conversations, allowing them to make informed decisions without having to spend time reading through lengthy conversations.

Desirable Skill : Strong programming skills in Typescript. Familiarity with natural language processing and machine learning. Familiarity with Rocket.Chat and its Apps-engine. Knowledge about OpenAI's ChatGPT API is a must.

Goal/Deliverable: A Rocket.Chat app that retrieves live chat conversations from the Rocket.Chat apps-engine. Use of the OpenAI ChatGPT API to generate a summary of the conversation. Storing the generated summaries in a database for later retrieval and analysis.

Project Duration: 175 hours. (Medium)

Difficulty: Easy/Medium

Next Generation Desktop Apps on Tauri

Mentors: Jean Brito, David Alen

Description:
Today our Desktop app is done in ElectronJS. Tauri is a new framework that is catching eyes for desktop apps development. The idea is to create a new Desktop app using Tauri to test it viability and capabilities. You will be creating a desktop app for one platform with all the main features like notifications, tray icon, downloads and settings panel. With this app we can see what Tauri can do for us and maybe one day become our main desktop app framwork.

Desirable Skills: Desktop applications development, Javascript/Typescript and a little of Rust experience is a plus.

Goals/Deliverable: A desktop application for Rocket.chat using Tauri framework.

Project Duration: 350 hours (Large)

Difficulty: Advanced

Improving Mobile Apps UX

Mentors: Reinaldo Neto

Description:
Improving the user experience on our current mobile apps with:

  • improved video UX (thumbnails, full screen etc)
  • Set background color (instead of rn-root-view) - ref
  • Migrate store reveiw - ref
  • Migrate screen orientation - ref
  • Migrate navigation color bar - ref
  • Migrate document picker - ref

Desirable Skills: Advanced Typescript. Advanced ReactNative.

Goal/Deliverable: Improved Rocket.Chat Ux impacting millions of users.

Project Duration: 175 hours. (Medium)

Difficulty: Medium

Jitsi Meet x Rocket.Chat

Mentors: Sidharth Mohanty, Sing Li

Description:
Jitsi meet has become one of the most popular and frequently used open source video conference platform in the world. The chat that is included as part of the Jitsi system is rudimentary and chat history is lost as soon as the conference is over. This project leverages our existing EmbeddedChat project to integrate an embedded version of Rocket.Chat into Jitsi Meet - giving it a rich messaging experience with full history after conference.

Ideally we would like an integration at the Jitsi Meet React SDK level. Perhaps extending the <JitsiMeeting/> tag with a useRCForChat attribute. The integration should maintain prosody as the single source of truth for channel membership. A variety of server authentication scenarios must be catered for (including SSO and Oauth).

Desired Skills: React Native, in-depth knowledge of EmbeddedChat project, familiarity with Jitsi Meet, understanding of prodigy.

Goal/Deliverable: Jitsi Meet with Rocket.Chat embedded in place of existing chat.

Project Duration: 350 hours. (Large)

Difficulty: Medium/Advanced\

QuickAnswer Bot

Mentors: Debdut Chakraborty

Description:
The goal is to develop a bot that can help reduce repetitive questions asked in Rocket.Chat channels by providing relevant answers from its knowledge base (Similar to this Slack app)

Features:

  1. Knowledge base: The bot will have a knowledge base of all previously answered questions and their answers.
  2. Real-time scanning: The bot will scan the Rocket.Chat channels in real-time for new questions and check if it has a relevant answer in its knowledge base.
  3. Private response: If the bot finds a relevant answer, it will send the answer privately to the person who asked the question, without interrupting the public conversation.
  4. Analytics (optional): The bot will keep track of the number of repetitive questions answered and provide analytics to the administrator.

Technologies to be used:

  • Rocket.Chat apps-engine
  • Natural Language Processing (NLP)
  • Elasticsearch (a suggestion, but I’m open to any other good alternatives)

With Elasticsearch integrated into the tech stack, the bot can leverage the powerful search and analysis capabilities of Elasticsearch to efficiently search through the knowledge base and provide accurate answers to the user's questions. Here’s a good blog to get started.

Desirable Skills: Advanced knowledge of Natural Language Processing (NLP); Rocket.Chat apps-engine; Experience using chosen indexing framework like ElasticSearch

Goal/Deliverable: A Rocket.Chat app that suggests relevant answers to new messages in a channel, based on past messages. Plus an additional service is used for indexing messages.

Project Duration: 350 hours. (Large)

Difficulty: Medium/Advanced

Open source Metaverse integration (mozilla hubs / third room)

Mentors: Hugo Costa, Sing Li

Description:
One very popular interpretation of the "Metaverse" is group interactions within a real-time rendered 3D Virtual Reality world. Mozilla Hubs has been the leading open source project in this space for the last decade. Due to the limitation (and cost) of today's technology, however, hub has always had limited scalability. Rooms can contain 20 to 30 attendees. Another similar technology proof of concept has emerged recently in Third Room. While Rocket.Chat as a collaboration platform has re-architectured to handle millions of users - and through federation, the world; we have also implemented Team Channels to deal with very large communities wanting autonomous control over their membership. This project is to create a rational integration between Mozilla Hubs (and/or Third Room) and Rocket.Chat team channel - enabling a pragmatic version of "the metaverse" to be built organically.

We welcome original proposals at different levels of integration. It can be a direct extension of core, an external bridge, a link preview-extension, or even a Rocket.Chat App.\

Desired Skills:

ReactJS, TypeScript, MeteorJS. A thorough understanding of how Rocket.Chat core works. Knowledge of Rocket.Chat Apps development. Passion for improving human communications and collaboration.

Goals/Deliverables:
Working integration of Mozilla Hubs rooms within Rocket.Chat Team Channels in a rational and usable context.

Project Duration: 350 hours (Large)

Difficulty: Advanced

Integrate Asana via RC App

Mentors: Dhruv Jain

Description: Create and assign tasks without leaving Rocket.Chat

Desirable Skills: JavaScript/TypeScript, ReactJS

Goal/Deliverable: The objective of this project is to be able to manage tasks without having to enter the Asana UI

Project Duration: 175 (Medium)

Difficulty: Easy/Medium

Toggl App

Mentors: Mustafa Hasan Khan, , Bárbara Zanella

Description:
Integrate the essential features of Toggl for team collaborating with Rocket.Chat. The app should include as a minimum the ability to:

* create time entries with one single slash command
* create projects and get approval from superiors to start work on it
* managers or admins should be able to track time worked by team and/or project
* other innovative features of your choice

Desirable Skills: JavaScript/TypeScript, ReactJS

Goal/Deliverable: Rocket.Chat App integrating Toggl for teams and team member collaboration.

Project Duration: 175 (Medium)

Difficulty: Easy/Medium\

Android Auto

Mentors: Diego Mello, Daniel Silva

Description:
Create a sensible implementation of Rocket.Chat for Android Auto.

Desirable Skills: Advanced Typescript. Android and Android Auto development experience.

Goal/Deliverable: Rocket.Chat for Android Auto

Project Duration: 175 hours (Medium)

Difficulty: Advanced\

Penetration Tests and Potential Vulnerabilities Fixes

Mentor(s): Igor Rincon

Description:
Security is critical to any open source project that works with user data over the web, and Rocket.chat recognizes the importance of safeguarding confidential information. Web application security and penetration testing involve identifying potential vulnerabilities, evaluating risks, conducting tests, and implementing countermeasures to prevent unauthorized access.

The focus of the project is going to be conducting security research on the Rocket.chat open-source project and identifying and repairing specific security vulnerabilities that will be found.

For this project, the automated and manual security tests, including static analysis, penetration testing, and vulnerability scanning will be maintained in the Rocket.Chat open source pentest repository.

In addition, the proposal should include some continuous integration tools to prevent the introduction of new vulnerabilities.

Together, these tests and tools will allow us to deliver a collaboration platform that is secure and reliable for use by all our community users.

Expected Deliverables:

  • Automated and Manual security tests, including static analysis, penetration testing, and vulnerability scanning.
  • Recommend (and possibly implement) fixes and retesting of the system to ensure that vulnerabilities are resolved.
  • creation and/or integration of continuous integration tools to prevent the introduction of new vulnerabilities.
  • A detailed risk assessment report, including a prioritized list of vulnerabilities and recommended fixes (these may need to be submitted in private initially until time for public disclosure)
  • Possible addition -- Tools to enable Github Recon, also known as Github footprinting. It is a process where researchers use Github to collect information about an organization's internal infrastructure, security configurations, codebase, tools, and policies. This is achieved by closely examining public repositories, reviewing organization accounts, commits, and pull requests, and searching for any useful pieces of information that could help better understand the target. The process involves identifying key personnel within an organization and looking into their contributions and activities on Github. These can provide insight into the type of work they may be involved in, tools and technologies they use, and any potential security risks or misconfigurations they may have unintentionally leaked onto the public platform.

Desired Skills: Penetration test, Javascript, Burp Suite

Project Duration: 175 hours. (Medium)

Difficulty: Easy/Medium

Unified Push for Android Apps

Mentors: Diego Mello

Description:
In the Android ecosystem, UnifiedPush has proven to be a practical provider agnostic way of supporting multiple push notification infrastructures. This project adds support for UnifiedPush to Rocket.Chat mobile app for Android platform.

Desired Skills:
Advanced ReactNative. Knowledge of Android platform development.

Goals/Deliverables:
UnifiedPush working on the Android app. With or without FCM fallback.

Project Duration: 175 hours (Medium)

Difficulty: Medium\

Template messages Rocket.Chat app

Mentors: Murtaza Patrawala

Description:
This project aims to develop a Rocket.Chat app that allows users to create, store, and send common messages with ease (Similar to this Slack app). The app will have a simple interface that enables users to create templates with customized names. These templates can be triggered using a slash command (e.g., /template <template-name>) and inserted into the chat window with just one click. Users can also edit and delete their templates as needed.

The app will be built using the Apps-Engine framework as a Rocket.Chat app. This app will improve productivity and streamline communication in Rocket.Chat, provides a convenient way for users to send common messages and save time in their daily work routine.

Examples of use cases include a customer support agent responding to frequently asked questions, a project manager sending a weekly status update message to the team, or a sales representative following up with potential clients.

Desirable Skills: Rocket.Chat app-engine Framework. Rocket.Chat UiKit. Advanced Typescript

Goal/Deliverable: A working Rocket.Chat app to send and manage template messages.

Project Duration: 175 hours. (Medium)

Difficulty: Easy/Medium

Google Summer of Code Community Hub

Mentors: Dhruv Jain, Sing Li
Description:
Every year, Rocket.Chat's GSoC new community of 100s gather around a desperate set of servers:

  • in open.rocket.chat channels
  • discussions in forums.rocket.chat topics
  • listed on gsoc.rocket.chat leaderboard
  • communicating over Github repositories
  • gathered for meetings on Jitsi
  • alumni summit
  • demo day

This project leverages two existing projects - the RC4Community platform and RC4Conferences components to build a one-stop hub to engage our community, incorporating all the servers into a unified hub with an easy to use Ux via single logon.\

Desirable Skills: Advanced Typescript, advanced React. Deep knowledge of RC4Community and RC4Conferences projects.

Goal/Deliverable: A working Google Summer of Code Community Hub that we will use to engage all community members starting in 2023.

Project Duration: 350 hours. (Large)\

Ideas Seeking a Little More Love in 2023

The following are 2023 project ideas that are currently unowned by any mentor and/or with no contributors' demand.

If you are interested in any one of them, let our community of 650+ potential contributors and mentors know in our 24 x 7 community chat channel AND you may just give it a life this season!

Update March 22, 2023

We have already seen FOUR extraordinary examples of contributors giving a new life to these "need more luv" projects:

Contributor Yash Sancheti introduced the pen test and fixes project and found mentor Igor Rincon for the project!

Contributor Yatendra Kumar convinced Debdut Chakraborty and Sing Li to revive the Flutter SDK project!

Anik Dhabal Babu requested and mentor Mustafa Hasan Khan agreed to mentor the Miro App and the Toggl App ideas for 2023 !

Congratulations to the above contributors ! And please know that these FOUR NEW MENTORED PROJECTS are NOW OPEN for everyone's contribution and proposals as well !!\

WordPress super plugin

Mentors: TBD

Description:
Rocket.Chat had a WordPress plugin that worked well with WordPress offering a few years back, giving users a very easily integrated LiveChat widget on their website. Since then both Rocket.Chat and WordPress have undergone major re-architecture and vastly expanded the possible intergration surfaces.

This projects aims to build a new WordPress plugin that enable the quick addition of a chatroom (not just LiveChat or omnichannel) to any WordPress website leveraging some of the new integration technology we have such as EmbeddedChat.

The new plugin should cater for WordPress legacy architecture and yet be highly useful in the new headless CMS model. It should deliver value for both WordPress SaaS users as well as self hosted WordPress installations.

Desirable Skills:
In-depth knowledge of WordPress architectures and plugin construction. Knowledge of Rocket.Chat integration surfaces.

Goal/Deliverable:
Working WordPress plugin on the WP marketplace supporting Rocket.Chat integration.

Project Duration: 350 hours (Large)
Difficulty: Medium\

Craft a sustainable snap for arm64

Mentors: TBD

Description:

Snaps (in amd64 architecture) is one of the most popular distribution method through which new users discover Rocket.Chat. 64bit ARM processors have come of age and becoming mainstream now that Apple has bet their future on the architecture.

In recent years, our own multi-platform snap build effort has failed miserably for the arm64 architecture. But tooling for building arm64 architecture snap on arm64 and amd64 is finally maturing. This project aims to leverage these new tooling to build a long-term sustainable snap distribution for arm64.

Desired Skills:
Rocket.Chat deployment experience. Working experience with Snapcraft. Intense interest on DevOps.

Goals/Deliverables:
Working arm64 snap for 5.x and 6.x releases of Rocket.Chat that leverages core22 and cross-build capabilities of Snapcraft 7.

Project Duration: 175 hours (Medium)

Difficulty: Medium\

Full-stack Components Framework for Community Builders

Mentors: TBD

Description:
Full-stack component is the holy grail of software componentization. Imagine building a fully functional customized web portal in minutes by dragging and dropping full-stack components. Each component not only contains interactive UI, but also associated mid-tier and server-side/severless behaviours as well as parameterizations. Unfortunately the state of our current software art is not quite there yet. The next best thing is actually which solves the same problem but at a page level and not at the component-within-the-page level.

RC4Community is a specialized componentized framework for community builders to rapidly create fully functional community portal. It was designed to work with a full-stack component framework since day one - but had to use Next.js instead.

This project involves the introduction of the missing architectural, build workflow, and packaging technology to enable full-stack components within the RC4Community context.

Desirable Skills: ReactJS, JavaScript, Next.js, server-side technology, serverless technology, microservices. A thorough understanding of how current component framework works. In-depth understanding of modern devops technology. In-depth understanding of JavaScript packaging technology and workflow. A passion for pushing the limits of modern componentized software development tools.

Goal/Deliverable: A set of full stack components for community builders. A framework that allows new components to be hosted on their own independent repositories and be packaged into modules that can be installed over the network as needed (similar to npm model today).

Project Duration: 350 hours. (Large)

Difficulty: Advanced

Enhanced Mobile App Support for Rocket.Chat Apps

Mentors: TBD

Description:

Rocket.Chat Apps are the preferred way to extend Rocket.Chat's feature set, and the officially supported way of adding custom integrations to the chat rooms. While the very basic slash commands are currently supported by our mobile apps, a large portion of capabilities enjoyed by the browser and desktop apps is missing from mobile.

This project aims to fill up part of this gap. It includes the mobile implementation of:

  • message actions
  • room actions
  • composer

Desirable Skills: Advanced Typescript. Advanced ReactNative. Understanding of iOS and Android programming.

Goal/Deliverable: Additional mobile support for Rocket.Chat apps.

Project Duration: 175 hours (Medium)

Difficulty: Advanced\

High Performance Windows Native Client

Mentors: TBD

Description:
Creating a high performance native desktop client for the Windows platform (Windows 10 and 11). This client should not embed a browser and should be accessing Rocket.Chat native APIs on the wire. It should leverage system programming languages such as rust and developed directly to the Windows System APIs. Goal is a client with better and optimized performance characteristics, on Windows based system, than our current cross-platform desktop apps.

Desirable Skills: Advanced rust. Advanced Windows systems development experience.

Goals/Deliverable: A Windows platform native client that has great performance characteristics.

Project Duration: 350 hours (Large)

Difficulty: Advanced.

User Actions Audit Center

Mentors: TBD

Description: The goal of this project is to make a service (Back end) capable of tracking user actions (role change, permission change, setting change, critical endpoint calls, etc) and then list them to admins. This will serve as a way of auditability of actions, reducing support friction (since this will make changes to system easier to track) and improve quality. Ideally, an Admin section will be shown with the list of actions, which would be filtered by type/user/level. Setting should also be in place to see if actions should be tracked or not and which actions to track

Desirable Skills: Advanced Typescript and mid level React

Goal/Deliverable: A working User Actions Audit Service.

Project Duration: 175 hours. (Medium)

Difficulty: Easy/Medium

Building the Rocket.Chat Appliance

Mentors: TBD

Description:
Create a "plug-in and go" appliance that allows anyone to run and operate a small Rocket.Chat server for their interest group, family, or friends.

The resulting image should run on arm SoC based SBCs with either 2GB or 4GB of RAM (as in most of today's Android TV boxes). Some technologies to consider include Armbian and Gokrazy. But we are wide open to all applicable stacks.

Back in 2015, Rocket.Chat planned a kickstarter/indiegogo project to do something very similar. Finally in 2023 the open source technology stacks, plus widely available arm hardware, are making it possible this to become a general open source project.

Desirable Skills: Familiarity with Rocket.Chat deployment platforms and workflows. This project will take someone with highly specialized interests and skills in low level firmware mods, kernel patching, bootloader hacking and possibly knowledge of Golang.

Goal/Deliverable: An image that can be loaded into inexpensive common 2GB/4GB Android TV-Box and repurpose it to become a "plug-in and go" Rocket.Chat appliance.

Project Duration: 350 hours (Large)

Difficulty: Advanced

Big Blue Button x Rocket.Chat

Mentors: TBD

Description:
Big Blue Button has become one of the more popular open source virtual classroom platform in the world. The chat that is included is based on meteorjs (just like Rocket.Chat) but is rudimentary and chat history is lost as soon as the class session is over. This project leverages our existing EmbeddedChat project to integrate an embedded version of Rocket.Chat into Big Blue Button - giving it a rich messaging experience with full history after class.

Desired Skills:
React Native, MeteorJS, in-depth knowledge of EmbeddedChat project, familiarity with Big Blue Button and good understanding of Rocket.Chat core.

Goal/Deliverable:
Big Blue Button with Rocket.Chat embedded in place of existing chat.

Project Duration: 350 hours. (Large)

Difficulty: Advanced