Skip to content

Contributor Reputation Dashboards #132

Description

@Benjtalkshow

Feature: User Reputation Dashboard (XP, Skills & Contributions)

Overview

To enhance user profiles and showcase contributions, we should introduce a visual reputation dashboard. This dashboard will display:

  • Contribution history (GitHub-style heatmap)
  • XP (experience points) earned
  • A radar chart representing technical skills

This feature will improve user engagement and provide a clearer representation of user activity and expertise.


Goals

  • Visualize user contributions over time
  • Display accumulated XP/reputation metrics
  • Showcase technical skill distribution
  • Enhance profile page experience

Implementation Details

1. Extend User Type

Modify: types/user.ts

  • Add new fields to the User type:
    • xp (number)
    • skills (array or mapped object with skill levels)
    • contributionHistory (date-based activity data)
  • Ensure type safety and compatibility with API responses

2. Update Profile Page

Modify: app/profile/[username]/page.tsx

  • Add a new "Reputation Dashboard" section
  • Integrate:
    • Skill radar chart
    • Contribution heatmap
    • XP display (e.g., card or summary widget)
  • Ensure layout is responsive and visually balanced

3. Create Skill Radar Chart

Create: components/profile/skill-radar-chart.tsx

  • Use Recharts to render a radar chart
  • Map user skills to chart axes
  • Ensure dynamic rendering based on user data
  • Handle empty or partial data gracefully

4. Create Contribution Heatmap

Create: components/profile/contribution-heatmap.tsx

  • Build a GitHub-style activity heatmap
  • Display contributions by date
  • Use color intensity to represent activity level
  • Ensure proper date handling and responsiveness

Files Affected

Modified

  • types/user.ts
  • app/profile/[username]/page.tsx

Created

  • components/profile/skill-radar-chart.tsx
  • components/profile/contribution-heatmap.tsx

Acceptance Criteria

  • Profile page includes a visible reputation dashboard
  • XP is displayed correctly
  • Skill radar chart renders accurately with user data
  • Contribution heatmap reflects activity history
  • UI is responsive and visually consistent
  • No regressions in existing profile functionality

Testing Notes

  • Test with users having varying levels of activity
  • Validate correct rendering of skill data
  • Ensure heatmap correctly maps dates and activity intensity
  • Check responsiveness across screen sizes

Additional Notes

  • Consider normalizing skill values (e.g., 0–100 scale) for chart consistency
  • Optimize rendering for large contribution datasets
  • Allow future extensibility for additional metrics (e.g., badges, streaks)
  • Optionally cache computed data for performance improvements

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions