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
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
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:
This feature will improve user engagement and provide a clearer representation of user activity and expertise.
Goals
Implementation Details
1. Extend User Type
Modify:
types/user.tsUsertype:xp(number)skills(array or mapped object with skill levels)contributionHistory(date-based activity data)2. Update Profile Page
Modify:
app/profile/[username]/page.tsx3. Create Skill Radar Chart
Create:
components/profile/skill-radar-chart.tsx4. Create Contribution Heatmap
Create:
components/profile/contribution-heatmap.tsxFiles Affected
Modified
types/user.tsapp/profile/[username]/page.tsxCreated
components/profile/skill-radar-chart.tsxcomponents/profile/contribution-heatmap.tsxAcceptance Criteria
Testing Notes
Additional Notes