elmeg-demo/.specify/tasks/14_global_search.md

25 lines
941 B
Markdown

# Task: Global Search
## Objective
Implement a global search functionality allowing users to find Shows, Songs, Venues, Tours, and Users from a single interface.
## Steps
- [x] **Backend**:
- [x] Create `routers/search.py`.
- [x] Implement `GET /search` endpoint accepting a query string `q`.
- [x] Perform ILIKE/Fuzzy searches across `Show`, `Song`, `Venue`, `Tour`, `User`, `Group` tables.
- [x] Return categorized results.
- [x] **Frontend**:
- [x] Install `cmdk` (Command K) library.
- [x] Create `SearchDialog` component.
- [x] Integrate `SearchDialog` into the main `Layout` or `Navbar`.
- [x] Implement keyboard shortcut (`Cmd+K` / `Ctrl+K`) to open search.
## Acceptance Criteria
- User can open search with Cmd+K or by clicking a search icon.
- Searching for "Tweezer" returns Songs named Tweezer.
- Searching for "MSG" returns Venues like Madison Square Garden.
- Searching for "1997" returns Shows or Years.