25 lines
941 B
Markdown
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.
|