Supporting liking on dataset and data post pages

Super job story

When I am viewing a dataset or data post, I want to see and use a Like (heart) feature so that I can both gauge community interest at a glance and express appreciation with minimal effort, without disrupting my reading or exploration flow.

Sequencing note

  • Initial implementation can introduce the Like UI and counts in a read-only state.
  • Interactive liking (authenticated and unauthenticated flows) follows.
  • Unliking completes the basic liking lifecycle.

Sub job stories

1. Displaying likes (read-only)

When I am viewing a dataset or data post, I want to see a Like (heart) icon with an associated count so that I can quickly understand how much interest or endorsement the content has received, even if I do not interact with it.

2. Liking as an unauthenticated user

When I am not signed in and I click the Like button on a dataset or data post, I want to be prompted to sign in or create an account in a modal, without leaving the current page, so that I can complete the Like within seconds and stay in context.

User flow (unauthenticated)

  • User sees Like button and count.
  • User clicks Like.
  • Authentication modal appears over the current page.
  • User signs in or creates an account via GitHub.
  • Modal closes automatically.
  • The original Like action is completed and reflected immediately.

3. Liking as an authenticated user

When I am already signed in and I click the Like button on a dataset or data post, I want my Like to be registered instantly, with immediate visual feedback, so that the interaction feels lightweight and responsive.

4. Unliking (undoing a Like)

When I have previously liked a dataset or data post, I want to be able to click the Like button again to remove my Like, so that I can change my mind and keep my expressed preferences accurate.