Skip to content

Instantly share code, notes, and snippets.

@strdr4605
Last active March 27, 2018 11:05
Show Gist options
  • Save strdr4605/972255531a003538f00c79caac18e8e0 to your computer and use it in GitHub Desktop.
Save strdr4605/972255531a003538f00c79caac18e8e0 to your computer and use it in GitHub Desktop.
Proposal for Google summer of code 2018 Rocket.chat

Proposal for Google summer of code 2018 Rocket.Chat

About me

  • Name: Dragoș Străinu
  • University: University of Siegen, Germany
  • Rocket.chat: @dr4605
  • Email: str.dr4605@gmail.com
  • Github: https://github.com/strdr4605
  • Experiences: For the past 2 years, I participated at 17 Hackathons. I am a fullstack developer. I worked with chatbots and data analysis.

About project

  • Project Name: Global Search
  • Mentors: @rodrigo.nascimento
  • Description: Add global search to Rocket.Chat, allowing users to search across messages, rooms, files, users, etc in a single and easy to use interface.
  • Desirable Skills: Familiarity with JavaScript development, MongoDB or other search engine.

Project Proposal

I did some research about "Global Search" using JavaScript and I found some libraries like omni-search or Fuse.js that can be useful. Any way I think I will speak with mentors and we will decide if this project needs a third party dependencies or not. Also I know HTML5/CSS and design so I can create a cool design for this project. Because it will be a global search, I want to create Search component similar to channels and when the user presses the find button of uses key shortcut, he will enter a window like a channel one with the search bar on top. After clicking on the desired result the user will be transferred to the selected channel. I would like to implement an autocomplete suggestion, found highlighting and also category divider when the user is searching.

Deliverables

  • Searching component
    This includes design and arrangement of the searching bar and results in the window.
  • Controller logic
    Searching, selecting and sorting of the data from API.
  • Unit testing
    Will be implemented together with controller logic development.
  • Documentation
    For this project I will use JSDoc.

Timeline

During the implementation period, I intend to use around 40 hours per week for the GSoC project.

April - May: I want to learn more about Rocket.Chat community, workflow, development tools and have some discussions, suggestions about project development. Also I will learn about topics related to this project that may help in development.
June:

  1. Creating Searching component.
  2. Developing simple logic of the Controller, like searching through messages, users and channels.
  3. Adding some MVP design.
  4. Simultaneous writing unit tests and documentation.

July:

  1. Combine searching through all categories.
  2. Improve design and user experience(like highlighting of found words).
  3. Sorting results by relevance.

August: Maybe adding new features and thinking about future development of the project.

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