Skip to content

Instantly share code, notes, and snippets.

@Gautime
Last active September 16, 2019 14:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Gautime/07c8b791bff6ddf0cc1d4be56042079b to your computer and use it in GitHub Desktop.
Save Gautime/07c8b791bff6ddf0cc1d4be56042079b to your computer and use it in GitHub Desktop.

GSoC 2019 Final Report : Rocket.Chat

Kapil Gautam

Introduction

During the period of Google Summer of Code 2019, I worked on the project of integrating Google Calendar with the platform of Rocket.Chat, which makes it easier for the users to manage their calendars from inside rocket.chat using some simple commands.

I would like to take this opportunity to thank Rocket.Chat and its vibrant community for such wonderful experience contributing to open source. This was my first time contributing to any open source organistaion. Also i would like to thank my mentors @d-gubert and @rodrigok. I had their support and guidance before and during the period of GSoC 2019. They help me getting unstuck whenever I was faced with a problem too complicated.

Project Overview

Rocket.Chat Apps Engine

Rocket.Chat app engine is a powerful tool which is used to manage and control all the functionalities inside an app built using this tool. Rocket.Chat apps are plugins or integrations which are created in an isolated environment, that end users can easily download from the marketplace. Apps are used to provide extended functionalities to the users of Rocket.Chat from inside the app.

Google Calendar API

To integrate the Google Calendar services with Rocket.Chat, I used the Google Calendar API. The API elaborates in detail for each functionality that we can perform with the API and various methods to achieve it based on user's implementation.

Authentication

Rocket.Chat users can authenticate their Gmail accounts easliy using Google OAuth authentication.That can easily be done by using a simple slashcommand \calendar auth. This will redirect user to a consent screen where after logging in to their Gmail,the process is completed once the user grants the permission.

Private Events

Rocket.Chat users can easily create new calendar events from inside their rocket.chat using just a simple slashcommand. This command inserts the event on the user's preferred calendar. More details regarding the command can be found in the repository.

View Events

This slashcommand lets the users check all the events present on their calendar. This command retrieves all the events on a particular user calendar(usually the primary calendar) and displays them all to the user.

View Calendars

Users can also view all the calendars that are present on their profile using a slashcommand. In addition to that, they can also select one calendar to work with, otherwise default calendar is primary calendar of each user.

Public Events

Since Rocket.Chat is a group chat platform where you can also have many users in various discussions and channels. To invite them all to an event can now be done using /calendar invite command.This command sends the invite to all the users present inside that room.

Quickadd Events

This slashcommand is used to create quick add events. This slashcommand allows user to create quickadd events defined in Google Calendar API.

Contributions and Pull Requests

This is the list of pull requests I made for the above mentioned features and some other improvements -

Merged PR

Open PR

What can be improved further?

  • Soon Rocket.Chat app engine is going to be powerful enough to facilitate UI changes. Once that happens, the same functionalities can be made easier for users using UI buttons.
  • Solve issues in the repository.
  • If you have a feature in mind and can't find anything about it, raise an issue!

Conclusion

Summer of 2019 was definitely a great learning time for me. It was pleasure to work with my mentor on a new feature that will be used by millions of the Rocket.Chat users. I also want to thank Google for this brilliant program, which encourages novide like me, to contribute to open source and have a great time doing it. After completing my GSoC, I am sure that I am going to keep contributing to open source in any manner possible. And also thanks to the whole FOSS community for making such a great environment that attracts new developers and help them in building cool things!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment