Skip to content

feat: add visual export functionality for dashboard analytics (#2712)#2739

Open
desireddymohithreddy0925 wants to merge 1 commit into
Priyanshu-byte-coder:mainfrom
desireddymohithreddy0925:feat/export-analytics-2712
Open

feat: add visual export functionality for dashboard analytics (#2712)#2739
desireddymohithreddy0925 wants to merge 1 commit into
Priyanshu-byte-coder:mainfrom
desireddymohithreddy0925:feat/export-analytics-2712

Conversation

@desireddymohithreddy0925

Copy link
Copy Markdown
Contributor

Description

Resolves #2712

This PR introduces a comprehensive Export Functionality designed to generate clean, shareable layouts for contribution analytics and developer insights. It consolidates the raw data downloads (CSV/JSON/Text PDF) and the new Visual exports (PNG/JPEG/Visual PDF) into an intuitive, unified Export Modal.

Changes Made

  • Created ExportModal.tsx: A new hub for configuring and running both legacy exports and visual captures.
  • Visual Capture Engine: Integrated html-to-image and jspdf to convert DOM nodes into high-quality images and properly formatted PDF layouts.
  • Theme Support: Added a toggle to select the export theme (Current, Light, or Dark) ensuring portfolio-ready visuals regardless of the active UI mode.
  • Widget Targeting: Tagged dashboard elements (dashboard-content, streak-tracker, repo-analytics, pr-metrics, activity-ring, coding-insights) with data-export-id attributes in src/app/dashboard/page.tsx for precise DOM targeting.
  • Refactored ExportButton.tsx: Replaced the clustered inline buttons with a single "Export Analytics" trigger button that opens the unified modal.

Acceptance Criteria

  • Allows users to export dashboard statistics and analytics as PDF.
  • Allows users to export contribution heatmaps and charts as PNG/JPEG images.
  • Allows users to select specific sections or widgets to include in the visual export.
  • Supports both light and dark theme overriding for exports.
  • Maintained functional parity with the original raw data exports.

@github-actions github-actions Bot added gssoc26 GSSoC 2026 contribution type:feature GSSoC type bonus: new feature labels Jun 23, 2026
@github-actions

Copy link
Copy Markdown

GSSoC Label Checklist 🏷️

@Umbrella-io — please apply the appropriate labels before merging:

Difficulty (pick one):

  • level:beginner — 20 pts
  • level:intermediate — 35 pts
  • level:advanced — 55 pts
  • level:critical — 80 pts

Quality (optional):

  • quality:clean — ×1.2 multiplier
  • quality:exceptional — ×1.5 multiplier

Validation (required to score):

  • gssoc:approved — counts for points
  • gssoc:invalid / gssoc:spam / gssoc:ai-slop — does not score

Type labels (type:*) are auto-detected from files and title. Review and adjust if needed.
Points formula: (difficulty × quality_multiplier) + type_bonus

@github-actions github-actions Bot added type:bug GSSoC type bonus: bug fix type:design GSSoC type bonus: UI/design (+10 pts) type:performance GSSoC type bonus: performance (+15 pts) labels Jun 23, 2026
@Priyanshu-byte-coder

Copy link
Copy Markdown
Owner

Thanks for the contribution! We are currently in a code cleanup sprint and not accepting new features. Please see the discussion for details: #2651

This PR will be revisited once the sprint ends. In the meantime, contributions to testing, refactoring, bug fixes, or documentation are welcome.

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

Labels

gssoc26 GSSoC 2026 contribution type:bug GSSoC type bonus: bug fix type:design GSSoC type bonus: UI/design (+10 pts) type:feature GSSoC type bonus: new feature type:performance GSSoC type bonus: performance (+15 pts)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEAT] Add Export Functionality for Contribution Analytics

2 participants