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

941 B

Task: Global Search

Objective

Implement a global search functionality allowing users to find Shows, Songs, Venues, Tours, and Users from a single interface.

Steps

  • Backend:
    • Create routers/search.py.
    • Implement GET /search endpoint accepting a query string q.
    • Perform ILIKE/Fuzzy searches across Show, Song, Venue, Tour, User, Group tables.
    • Return categorized results.
  • Frontend:
    • Install cmdk (Command K) library.
    • Create SearchDialog component.
    • Integrate SearchDialog into the main Layout or Navbar.
    • 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.