rubyforgood / rubyforgood/awbw
Story Share portal: live search suggestions (autocomplete)
Nobody has claimed this yet.
- Dominant language
- Ruby
- Stars
- 15
- Forks
- 26
- Avg merge
- 12h 42m
- Merged PRs (30d)
- 242
Description
Context
The Story Share portal (/story_shares) navbar has a keyword search that submits to a full results page (?query=…). The live WordPress site (stories.awbw.org) additionally shows an AJAX live-suggestion dropdown (JetSearch) as you type, surfacing matching story titles before you submit.
What's needed
- As-you-type suggestions below the portal search box: matching story titles (respecting the public/
publicly_visiblepolicy scope), each linking to the story. - Debounced requests to a lightweight JSON/Turbo-Stream endpoint on
StorySharesController(or a small suggestions action), reusingStory.search_by_params/SearchCop. - Keyboard navigation (up/down/enter/escape) and outside-click dismiss; accessible (ARIA combobox/listbox).
- Prefer Turbo (frame/stream) over bespoke JS where possible; a small Stimulus controller for debounce + keyboard handling is acceptable.
- Must work on mobile (the portal search appears in the mobile menu too).
Notes
Plain submit-to-results search already ships in the portal-parity work; this issue is the progressive-enhancement layer on top.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the /story_shares navbar search and StorySharesController, then inspect the existing Story.search_by_params/SearchCop flow and the mobile-menu search. Add the progressive live-suggestion behavior with the stated visibility scope, keyboard and ARIA requirements, and verify that suggestions link to stories and work in both desktop and mobile search.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ruby
- Domain
- accessibility, backend, frontend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100