novuhq / novu

Open-Source Notification Platform. Embeddable Notification Center, E-mail, Push and Slack Integrations.
https://novu.co
Other
34.47k stars 3.51k forks source link

[NV-1537] 🚀 Feature: Search bar at ~/templates #2398

Open wh1337 opened 1 year ago

wh1337 commented 1 year ago

🔖 Feature description

It would be a nice quality of life improvement to have a search bar so you can filter and search through templates.

🎤 Why is this feature needed ?

In my use-case, we will end up having various templates for various mission critical notifications. It would be nice to be able to search for the template.

✌️ How do you aim to achieve this?

Searching bar at the top :)

🔄️ Additional Information

No response

👀 Have you spent some time to check if this feature request has been raised before?

🏢 Have you read the Code of Conduct?

Are you willing to submit PR?

None

NV-1537

github-actions[bot] commented 1 year ago

Hi, I'm Jarvis 🤖

I'm a bot built to help you with your contribution to Novu. I will add instructions and guides on how to run the subset of the Novu platform associated to this issue and make your first contribution.

This issue was tagged as related to @novu/api and the related code is located at the apps/api folder, here is how I can help you:

First time contributing to Novu? If that's the first time you want to contribute to Novu here are a few simple steps to get you started: 1. Fork the repository and clone your fork to your local machine. 2. Install the dependencies using `npm run setup:project`. 3. Create a new branch with the number of the issue, for example: `1454-fix-something-cool` and start contributing based on the [Contributing Guide](https://docs.novu.co/community/run-locally) or the short guide in the section below. 4. Create a Pull request and follow the template of creation
Run and test `@novu/api` locally ### Run API in watch mode The easiest way to start the API is to run `npm run start:api` from the root of the repository ### Run API integration tests To validate your changes or simply to run the e2e tests run `npm run start:e2e:api`. All the e2e tests have the `.e2e.ts` suffix and usually are located near the controller files of each module.
codingmickey commented 1 year ago

I want to try to work on this issue but am not indeed confident but wanna give it a try, I'll have to think in stages of first building the search functionality on the backend then making the UI then integrating them all.. correct me if I'm wrong? Also which search algorithm to use, or should we directly use it from a pre-build npm package?

scopsy commented 1 year ago

@codingmickey for now we can also start by fetching templates list on client and search them there. We can later have a backend level search but it will be much more complicated.

We can also go for backend search, then we will need to rely on MongoDB search functionality.

jainpawan21 commented 1 year ago

Client side search will also not give good results as we have pagination in templates

codingmickey commented 1 year ago

Client side search will also not give good results as we have pagination in templates

So should I make a route first on the backend or any other way to proceed? @scopsy @jainpawan21

scopsy commented 1 year ago

@codingmickey would prefer right now to fetch this on the client with existing routes nad filter it there. A proper search functionality is a bit big of a scope for this task

codingmickey commented 1 year ago

I think my implementation is not that proper... 😅 If you have any improvements please do suggest. Raising a PR as finally completed this after 2hrs because of messing up a essential react hook concept

wh1337 commented 1 year ago

Morning, just bumping this since the last update was 4 months ago :)