Skip to content

feat: dashboard widget drag-drop customization with persistence#1317

Open
DHEVIKA wants to merge 14 commits into
Priyanshu-byte-coder:mainfrom
DHEVIKA:feat/dashboard-widget-layout
Open

feat: dashboard widget drag-drop customization with persistence#1317
DHEVIKA wants to merge 14 commits into
Priyanshu-byte-coder:mainfrom
DHEVIKA:feat/dashboard-widget-layout

Conversation

@DHEVIKA
Copy link
Copy Markdown
Contributor

@DHEVIKA DHEVIKA commented May 27, 2026

Features

  • Drag & drop dashboard widgets using dnd-kit
  • Persistent widget order using localStorage
  • Backend sync for user-specific layout
  • Hide/show widgets in edit mode
  • Reset layout option
  • Keyboard + mobile support

Implementation

  • @dnd-kit/core + sortable
  • Next.js API route for layout storage
  • localStorage + DB hybrid persistence
  • NextAuth session-based user identification

Notes

Backend uses in-memory storage for demo purposes (can be upgraded to DB later).

@vercel
Copy link
Copy Markdown

vercel Bot commented May 27, 2026

@DHEVIKA is attempting to deploy a commit to the PRIYANSHU DOSHI's projects Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions github-actions Bot added gssoc26 GSSoC 2026 contribution type:feature GSSoC type bonus: new feature labels May 27, 2026
@github-actions
Copy link
Copy Markdown

GSSoC Label Checklist 🏷️

@Priyanshu-byte-coder — 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

@Priyanshu-byte-coder
Copy link
Copy Markdown
Owner

Thanks @DHEVIKA for the dashboard drag-drop widget! The concept is great and the implementation with @dnd-kit looks promising. However, there are two issues blocking the merge:

Build failure + Blockers:

  1. pnpm-lock.yaml and pnpm-workspace.yaml — This project uses npm, not pnpm. These files should not be added and are likely causing the build failure. Please delete them and ensure you run npm install (not pnpm install).
  2. next.config.mjs — Please check what changes you made here. Ensure output: 'standalone' is preserved.
  3. Rebase neededDashboardHeader.tsx has been modified by recent merges. Please rebase onto main.

Once you fix the pnpm files and rebase, please verify the build passes locally with npm run build. The drag-drop persistence feature is a valuable addition!

Copy link
Copy Markdown
Owner

@Priyanshu-byte-coder Priyanshu-byte-coder left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two issues:

  1. pnpm files: This PR includes pnpm-workspace.yaml and pnpm-lock.yaml. This project uses npm, not pnpm. Please remove these files.
  2. Merge conflicts: There are conflicts with current main in multiple files. Please rebase after removing the pnpm files.

@Priyanshu-byte-coder Priyanshu-byte-coder added gssoc:approved GSSoC: PR approved for scoring level:advanced GSSoC: Advanced difficulty (55 pts) labels May 28, 2026
@Priyanshu-byte-coder
Copy link
Copy Markdown
Owner

Your PR has conflicts with the current main branch. Please rebase on main to resolve conflicts and this can be reviewed for merging. Labels have been added ✅

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

Labels

gssoc:approved GSSoC: PR approved for scoring gssoc26 GSSoC 2026 contribution level:advanced GSSoC: Advanced difficulty (55 pts) type:feature GSSoC type bonus: new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants