Building a Shareable Search Page is a practical frontend project for learners with basic HTML, CSS, and JavaScript experience. Build Fieldnote, a fictional local-events search page whose link opens the same filtered, ordered results and results page in another browser context.
Two Guided Labs begin with a working shared view, then develop URL-based search state and browser navigation. An independent Challenge applies the same mechanisms to another events edition with different categories and page size. Each lab provides its own starting files and data.
What You Will Learn
After completing this course, you will be able to:
- filter, sort, and paginate a prepared event catalogue while keeping each record's content attached to its stable ID, including events with the same title;
- read and normalize
q,category,sort, andpagewithURLandURLSearchParams, handling spaces,&, literal+, unknown values, and invalid pages; - keep submitted filters, visible controls, results, and the share link consistent, with useful empty results and page boundaries;
- use
pushState,replaceState, andpopstateto restore committed views through refresh and real Back/Forward navigation without adding unwanted history entries; - open a real share link in a clean browser context and compare the same ordered records, preserving the current path, unrelated query parameters, and fragment.
Who This Course Is For
This course is for learners ready to connect browser state, JavaScript data processing, and a useful search interface.
Prerequisites: Basic terminal and path use; HTML forms; CSS layout and visible focus; and JavaScript objects, arrays, functions, DOM selection/manipulation, and events. You should be able to edit and save project files. The Guided Labs teach URL encoding, filter/sort/slice, copying arrays, stable record identity, and browser history before the Challenge. React and backend programming are not required.
Learning environment: LabEx provides a prepared browser-based coding environment, a static site, and synthetic event data. You implement browser JavaScript; the server only delivers files. Website labels and runtime output remain in English.
Frequently Asked Questions
Will I build a search backend or store visitors' preferences?
No. Filtering, ordering, and pagination run in the browser over prepared local data. The URL carries the committed view, so another browser does not need the first browser's saved storage.
What happens to edits that I have not submitted?
Controls hold a draft until Search is submitted. Refresh restores the committed URL state. You also practice correcting restrictive searches and handling documented defaults or page corrections; zero matches are a valid result.
Can I publish a permanent link with this course?
No. Sharing is limited to the running authorized lab and its available route. A link does not keep a VM alive, work across separate lab VMs, or publish the page to the Internet. Production deployment and complete accessibility certification are outside this course.


