Skip to content

HomePage/ContributorDashboardPage's "Recommended for you" section is not personalized — it's an arbitrary slice of open bounties #239

Description

@chonilius

src/app/dashboard/contributor/page.tsx#ContributorDashboardPage renders a section
titled "Recommended for you":

<h2 className="mt-12 text-xl font-semibold text-slate-900 dark:text-white">
  Recommended for you
</h2>
<div className="mt-6 grid gap-4 md:grid-cols-2">
  {available.slice(0, 4).map((bounty) => (
    <BountyCard key={bounty.id} bounty={bounty} />
  ))}
</div>

available is simply bounties.filter((b) => b.status === "open") — every open bounty,
in whatever order the backend/mock data happens to return them, with the first four taken
via slice(0, 4). There is no relevance scoring against the signed-in contributor's
history, languages (ReputationProfile.languages, which this same app already computes
and displays on the reputation page), past claims, or repos they've contributed to —
"Recommended for you" is functionally identical to "here are the first four open
bounties," which would be an honest heading; "Recommended for you" implies a
personalization that doesn't exist anywhere in this code path.

This matters specifically because the same contributor's own reputation profile (fetched
via mockReputationProfiles/fetchReputationByUsername elsewhere in this app) already
contains exactly the signal — languages, organizations — that a real recommendation
would use, but ContributorDashboardPage never reads it for this purpose.

Suggested fix: either rename the section to something accurate ("Open bounties") until
real personalization exists, or use the signed-in user's own languages/organizations
(already fetched elsewhere) to filter/sort available before slicing.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions