Skip to content

Badges / roles on profiles (#167 Phase 3) #194

Description

@dmccoystephenson

Summary

Phase 3 of #167. Award badges / roles to users — e.g. contributor, server owner, early adopter, plugin author — and display them on profiles.

Scope

  • Backend (dpc-api): a Badge enum/table + a UserBadge join (FK to the local User mirror, awarded-at timestamp). Some badges are derivable and can be computed rather than stored at first: server owner = the user owns at least one API key (ApiKeyRepository.findByOwner), early adopter = User.createdAt before a cutoff. Others (contributor, plugin author) are assigned and need an admin grant path: authenticated admin-only POST/DELETE /api/v1/users/{username}/badges.
  • Public exposure: include the badge list on PublicProfileResponse (Public profile pages — view another user's profile (#167 Phase 3) #181) so badges show without auth.
  • Frontend: render badges as MUI Chips on the public profile (pages/u/[username].tsx) and the account page.

Why it matters

Badges give recognition (motivating contribution) and let visitors quickly gauge who is behind a review or plugin (a plugin author badge carries weight on that plugin's reviews).

Dependencies

Filed as a Phase 3 decomposition of #167; drafted by Claude on behalf of Daniel Stephenson. Claims verified against User, ApiKey/ApiKeyRepository, and the #181 public-profile surface.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions