Skip to content

[FEAT] Add custom widget visibility settings — show/hide dashboard cards #175

@Priyanshu-byte-coder

Description

@Priyanshu-byte-coder

Summary

Let users choose which widgets appear on their dashboard. Some users don't use Goals; others don't care about Language Breakdown. A simple show/hide toggle per widget in Settings makes the dashboard personal.

Motivation

As more widgets are added, the dashboard gets long. Users should own their layout.

Acceptance Criteria

  • Settings page: new "Dashboard Widgets" section with a toggle per widget
  • Widgets: Contribution Graph, Streak Tracker, PR Metrics, Top Repos, Language Breakdown, Goals, CI Analytics, Issues Tracker, Friend Comparison
  • Preferences persisted in Supabase: new user_widget_prefs JSONB column on users table
  • Dashboard reads prefs and conditionally renders each widget
  • Newly added widgets default to visible
  • Changes apply immediately (no page reload)
  • Fallback: if prefs fetch fails, show all widgets

Files to Touch

  • src/app/dashboard/settings/page.tsx
  • src/app/dashboard/page.tsx
  • src/app/api/user/settings/route.ts — extend to include widget prefs
  • supabase/schema.sql

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestgssoc26GSSoC 2026 contributionlevel:advancedGSSoC: Advanced difficulty (55 pts)~8hEstimated 8 hours

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions