Skip to content

feat(onboarding): add first-time dashboard tour for new users#305

Open
mallya-m wants to merge 3 commits into
Priyanshu-byte-coder:mainfrom
mallya-m:feat/onboarding-tour-251
Open

feat(onboarding): add first-time dashboard tour for new users#305
mallya-m wants to merge 3 commits into
Priyanshu-byte-coder:mainfrom
mallya-m:feat/onboarding-tour-251

Conversation

@mallya-m
Copy link
Copy Markdown
Contributor

What does this PR do?

Adds a step-by-step onboarding tour for first-time users using driver.js, highlighting key dashboard widgets with explanatory popups.

Related issue

Closes #251

Changes made

  • Created OnboardingTour.tsx component using driver.js
  • Tour auto-starts on first sign-in when seen_onboarding is false
  • Added seen_onboarding column to users table via SQL migration
  • Extended PATCH /api/user/settings to accept seen_onboarding field
  • Added "Take Tour" button in DashboardHeader so users can replay anytime
  • Tour covers 5 widgets: Contribution Graph, Streak, PR Metrics, Top Repos, Goals
  • Marked complete in Supabase on finish or skip — never auto-shows again

How to test

  1. Sign in for the first time — tour auto-starts after 0.8s
  2. Click through all 5 steps
  3. Sign out and sign back in — tour should NOT auto-start
  4. Click "Take Tour" button in header — tour restarts manually

Screenshots

Screenshot 2026-05-18 021550 Screenshot 2026-05-18 021132 Screenshot 2026-05-18 021121

@vercel
Copy link
Copy Markdown

vercel Bot commented May 17, 2026

@mallya-m 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.

@mallya-m
Copy link
Copy Markdown
Contributor Author

@Priyanshu-byte-coder
Could you please add the gssoc:approved, type:feature, and type:design labels?
Thank you!

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.

driver.js is imported in OnboardingTour.tsx but not declared in package.json. This causes the build and dependency audit to fail.

Add it to package.json:

npm install driver.js

Then commit the updated package.json and package-lock.json. The onboarding tour implementation itself looks solid.

@Priyanshu-byte-coder
Copy link
Copy Markdown
Owner

This PR conflicts with recently merged changes. Please rebase onto main:

git fetch upstream && git rebase upstream/main

Resolve any conflicts, push, and I'll review.

@Priyanshu-byte-coder
Copy link
Copy Markdown
Owner

Hi @mallya-m — this PR has a merge conflict with main. Please rebase your branch:

git fetch upstream
git rebase upstream/main
# resolve conflicts, then:
git push --force-with-lease

Once rebased, we'll review and merge.

@mallya-m mallya-m force-pushed the feat/onboarding-tour-251 branch 2 times, most recently from 54eda1a to cd9ebfb Compare May 19, 2026 17:13
@mallya-m
Copy link
Copy Markdown
Contributor Author

Hi @Priyanshu-byte-coder

Rebased onto latest main and resolved all merge conflicts.

Also fixed driver.js dependency and synced package-lock.json.

All CI checks are now passing locally and on GitHub.

Ready to merge !

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.

  1. CDN CSS version mismatch — OnboardingTour.tsx injects at runtime but package.json installs driver.js@^1.4.0. These versions differ and may cause visual glitches. Import statically instead: import 'driver.js/dist/driver.css'. 2. No migration file — PR description mentions adding seen_onboarding column but no supabase/migrations/ file is in the diff. Feature will break on any fresh deployment. Include the migration. 3. Missing EOF newlines on OnboardingTour.tsx, DashboardHeader.tsx, and settings/route.ts. 4. Indentation broken in settings/route.ts — the user resolution block loses indentation (starts at column 0 inside an if block). 5. package-lock.json churn — unrelated npm version artifacts. Revert.

@Priyanshu-byte-coder Priyanshu-byte-coder added level:intermediate GSSoC: Intermediate difficulty (35 pts) gssoc26 GSSoC 2026 contribution labels May 20, 2026
@mallya-m mallya-m force-pushed the feat/onboarding-tour-251 branch from cd9ebfb to 3dacde4 Compare May 20, 2026 19:55
@github-actions github-actions Bot added the type:feature GSSoC type bonus: new feature label May 20, 2026
@mallya-m
Copy link
Copy Markdown
Contributor Author

@Priyanshu-byte-coder all issues addressed:

  1. Replaced CDN CSS injection with static import in layout.tsx + added transpilePackages in next.config.mjs
  2. Fixed broken indentation in settings/route.ts PATCH handler
  3. Added migration file: 20260520000000_add_seen_onboarding.sql
  4. Added EOF newlines to all modified files
  5. Reverted package-lock.json churn
  6. Build passes with zero errors

Ready for merge!

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

Labels

gssoc26 GSSoC 2026 contribution level:intermediate GSSoC: Intermediate difficulty (35 pts) type:feature GSSoC type bonus: new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEAT] Add dashboard onboarding tour for first-time users

2 participants