Skip to main content
CodePlanet Docs

Widgets

Customizing your dashboard

The CodePlanet dashboard features customizable widgets that provide quick access to your progress, recommendations, and activity.

Available Widgets

Stats Card

Displays your overall progress at a glance:

┌─────────────────────────────────────────────────┐
│              Your Progress                       │
├─────────────────────────────────────────────────┤
│                                                 │
│   🎯 Problems Solved    🔥 Current Streak       │
│        145                   12 days            │
│                                                 │
│   ⚡ XP Earned          📈 Success Rate         │
│       4,500                  72%                │
│                                                 │
└─────────────────────────────────────────────────┘

Metrics shown:

  • Total problems solved
  • Current streak (consecutive days)
  • XP earned
  • Overall success rate

Configuration:

  • None (always visible)

Weak Topics Widget

Shows topics where you need more practice:

┌─────────────────────────────────────────────────┐
│           Focus Areas                            │
│           5 topics need attention               │
├─────────────────────────────────────────────────┤
│                                                 │
│   Dynamic Programming           38%  ↑         │
│   ████████░░░░░░░░░░░░░░░░░                     │
│   [Practice] [View All]                         │
│                                                 │
│   Graphs                        52%  →         │
│   ██████████████░░░░░░░░░░                      │
│   [Practice] [View All]                         │
│                                                 │
└─────────────────────────────────────────────────┘

Features:

  • Top 5 weak topics by weakness score
  • Success rate for each topic
  • Trend indicator (improving/stable/declining)
  • Quick links to practice problems

Configuration:

  • Number of topics to show (3-10)
  • Expand/collapse by default

AI-curated problems based on your learning profile:

┌─────────────────────────────────────────────────┐
│         Recommended for You                      │
├─────────────────────────────────────────────────┤
│                                                 │
│   🟢 Two Sum                        Easy        │
│      Arrays • Hash Table                        │
│      Perfect for warming up                     │
│                                                 │
│   🟡 LRU Cache                      Medium      │
│      Design • Hash Map                          │
│      Strengthen your weak area                  │
│                                                 │
│   🔴 Median of Two Arrays           Hard        │
│      Binary Search • Divide & Conquer           │
│      Challenge yourself!                        │
│                                                 │
└─────────────────────────────────────────────────┘

Features:

  • Mix of difficulties
  • Based on weak topics
  • Considers learning path progress
  • Fresh recommendations daily

Configuration:

  • Number of problems (3-10)
  • Difficulty filter

Activity Calendar

GitHub-style contribution graph:

┌─────────────────────────────────────────────────┐
│              Activity                            │
├─────────────────────────────────────────────────┤
│                                                 │
│   Jan                                           │
│   M  ░░██░░██░░██░░░░██████████░░██░░          │
│   W  ██████░░██░░██████░░░░██████████          │
│   F  ░░██████████████████░░██████░░░░          │
│                                                 │
│   127 problems in the last 90 days             │
│                                                 │
└─────────────────────────────────────────────────┘

Features:

  • 90-day activity view
  • Color intensity = activity level
  • Hover for details
  • Link to full history

Configuration:

  • Time range (30/60/90 days)

Daily Challenge

Today's featured problem:

┌─────────────────────────────────────────────────┐
│          Daily Challenge                         │
│          January 15, 2024                        │
├─────────────────────────────────────────────────┤
│                                                 │
│   🎯 Valid Parentheses              Medium      │
│                                                 │
│   Given a string containing just the            │
│   characters '(', ')', '{', '}', ...           │
│                                                 │
│   ⏰ 23:42:15 remaining                         │
│                                                 │
│   [Start Challenge] [Skip]                      │
│                                                 │
└─────────────────────────────────────────────────┘

Features:

  • New problem every day at midnight IST
  • Countdown timer
  • Bonus XP for completion
  • Streak bonus if maintained

Configuration:

  • Show/hide (cannot move)

Streak Progress

Track your consistency:

┌─────────────────────────────────────────────────┐
│              Streak                              │
├─────────────────────────────────────────────────┤
│                                                 │
│   🔥 12 Days                                    │
│                                                 │
│   M   T   W   T   F   S   S                    │
│   ✓   ✓   ✓   ✓   ✓   ✓   ○                    │
│                                                 │
│   Complete today's problem to continue!         │
│   Next milestone: 14 days (🏆 Badge)            │
│                                                 │
└─────────────────────────────────────────────────┘

Features:

  • Current streak count
  • Week view with completion status
  • Next milestone indicator
  • Streak freeze status (Pro only)

Configuration:

  • None

Leaderboard Preview

See where you stand:

┌─────────────────────────────────────────────────┐
│           This Week's Top                        │
├─────────────────────────────────────────────────┤
│                                                 │
│   🥇 CodingMaster    1,250 XP                   │
│   🥈 ByteHunter       980 XP                    │
│   🥉 AlgoNinja        875 XP                    │
│   ...                                           │
│   📍 You (#47)        340 XP                    │
│                                                 │
│   [View Full Leaderboard]                       │
│                                                 │
└─────────────────────────────────────────────────┘

Features:

  • Top 3 this week
  • Your position
  • XP comparison
  • Link to full leaderboard

Configuration:

  • Time period (daily/weekly/monthly/all-time)
  • Show/hide your ranking

Learning Path Progress

Track course completion:

┌─────────────────────────────────────────────────┐
│           DSA Fundamentals                       │
├─────────────────────────────────────────────────┤
│                                                 │
│   ████████████████░░░░░░░░░░░░░  65%            │
│                                                 │
│   ✓ Arrays & Strings                           │
│   ✓ Linked Lists                               │
│   → Trees (in progress)                         │
│   ○ Graphs                                      │
│   ○ Dynamic Programming                         │
│                                                 │
│   [Continue Learning]                           │
│                                                 │
└─────────────────────────────────────────────────┘

Features:

  • Overall progress bar
  • Section completion status
  • Current section highlighted
  • Quick continue button

Configuration:

  • Which path to display

Customizing Widgets

Reorder Widgets

Drag and drop widgets to customize your layout (planned for a future release).

Show/Hide Widgets

Click the ⋮ menu on any widget and select:

  • "Hide Widget" — Remove from dashboard
  • "Minimize" — Show compact view
  • "Settings" — Configure options

Restore Widgets

Go to Settings → Dashboard → Widgets to restore hidden widgets.

Widget Settings

Access via Settings → Dashboard → Widgets:

SettingDescription
LayoutGrid (2 columns) or List (1 column)
DensityComfortable, Compact, or Spacious
RefreshAuto-refresh interval (1-60 min)
AnimationsEnable/disable widget animations

API Access

Get widget data programmatically:

// GET /api/v1/dashboard/widgets
{
  stats: { problemsSolved: 145, streak: 12, ... },
  weakTopics: [...],
  recommendations: [...],
  activity: { dates: {...} },
  dailyChallenge: { problem: {...}, remaining: 85935 }
}

Next Steps

On this page