- 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.
- 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.
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.
- 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.
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:
- Creating Searching component.
- Developing simple logic of the Controller, like searching through messages, users and channels.
- Adding some MVP design.
- Simultaneous writing unit tests and documentation.
July:
- Combine searching through all categories.
- Improve design and user experience(like highlighting of found words).
- Sorting results by relevance.
August: Maybe adding new features and thinking about future development of the project.