Salesforce LWC

Job ID: 31569897

Budget: $30 – $250 USD

1.Build a web page that conforms to the below mockup. This is an internal page for backend users, so it needs to be professional-looking & simple to use, but not pixel-perfect. The user should be able to enter any text into the input & press the button labeled “Go”. Upon pressing the button, the text that they entered should appear below the input box according to the mockup. Pressing the return key should also invoke the same functionality as the “Go” button.

There are some prohibited search terms. The Client has not provided the specific terms, but please hard-code a list of “stop words”. If the user presses Go on a search term that contains a stopword, display an error message instead.

Bonuses:
Update the results box below automatically as the user types (without needing a button or enter key)
Implement a “back” button at the bottom so that users can move backward to view previous searches.

2.We now would like to wire our component up to search across Salesforce records.

The requirement is to collect the search term from the user, and perform a SOSL search against accounts, contacts, and leads in Salesforce. Show the record results in a table with 5 rows per page and previous and next buttons. When the user hits previous or next grab the next set of 5 search results. Make sure the user can’t navigate to a page that doesn’t exist.

Be sure to prevent the user from executing a search containing any of the stopwords.

Technical Notes
You will not be able to use offset on the SOSL query for the pagination. Instead, order by createdDate and keep track of the createddate for the current ranges.
DO NOT use the lightning datatable, design your own table with <template> tags

Bonus
Display page numbers below the table and allow the user to directly navigate to any valid page.

3.mplement bookmarking functionality for your page. Now that the user can search for records and see a few at a time, let the user click a given record to be “bookmarked”. A bookmarked record should be saved in a new Bookmarks object. You’ll want to keep a running list of bookmarked records and show the list of bookmarks in a separate list on the page.

As a user, if I run a search, I can page through the results and add some bookmarks. If I enter a new search term, my results list will of course change, but the bookmark list should remain the same.

Bonus: Bookmark validation - if a user has already bookmarked a search item do not allow them to bookmark it again but still display it in the search results

4.ow that you’ve created several distinct pieces of functionality you’d like to decompose it into small, loosely coupled components for maintainability and reusability.

Review your existing code and determine what independent components this could be broken up into and then we will sync up and discuss the options.

5.Now that you have a fully functional search and bookmarking component let's put some power and customizability into the hands of the admin.
Create a design attribute that allow admins to dynamically specify the list of stop words
Allow admins to add the component to any detail page for an object and then only search across that object. E.g. An admin should be able to drag and drop the component onto a record page layout in app builder and the component should check what context it is running in and change SOSL based on that.
If you are on the Account page only search Accounts, on the Contact page only search Contacts, etc
Lightning App Builder: https://developer.salesforce.com/docs/component-library/documentation/en/lwc/lwc.use_config_for_app_builder
XML Reference: https://developer.salesforce.com/docs/component-library/documentation/en/lwc/lwc.reference_configuration_tags