Skip to content

UI: Build Board view to display papers and voting #6

Description

@lucianfialho

Problem

There's no way to view a single board with all its papers. Users need a dedicated page to see board contents and vote on papers within the context of that collection.

Solution

Create a Board detail page showing all papers in the collection with board-specific voting and contributor info.

Acceptance Criteria

  • New page route: /boards/[id] or similar

    • Fetch board + papers via GET /api/boards/[id]
    • Handle 404 if board not found
    • Show limited view for non-members (viewers can see public boards)
  • Board header section:

    • Title + description
    • Paper count
    • Collaborators list/avatars
    • Edit board button (owner only)
    • Add paper button (editor+ only)
    • Share button
  • Papers display:

    • Grid or list of papers in the board
    • Paper cards show:
      • Title, authors, arxivId
      • Quick preview of abstract
      • Board-specific vote count (separate from annotation votes)
      • Upvote button (click to vote)
      • Link to open full paper
  • Sort/filter options:

    • Sort by: date added, title, vote count
    • Quick category filter if papers have categories
    • Search papers within board
  • Add paper modal:

    • Search field (arXiv ID, DOI, or paper title)
    • Auto-fetch paper if not in system
    • Optional notes field
    • Add to board button
  • Board voting system:

    • Separate from annotation upvotes
    • Idempotent (can't double vote)
    • Show vote count per paper
    • Highlight voted papers for current user

Dependencies

Design Notes

  • Similar visual style to existing paper cards and annotation displays
  • Responsive layout (mobile-friendly)
  • Maintain dark theme consistency

Notes

  • Consider if board voting is per-paper or if it impacts paper's global popularity
  • May need aggregation logic for vote counts vs annotation upvotes

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions