Overview
New members land on the dashboard with no guidance. An onboarding wizard walks them through key setup steps (profile photo, bio, phone verification) immediately after registration, improving profile completeness and member engagement.
Context
frontend/app/dashboard/page.tsx — show wizard here on first visit
frontend/app/settings/page.tsx — existing profile settings (for context on available fields)
frontend/lib/store/authStore.ts — for checking if this is a first login
- Depends on BE-52 for
GET /onboarding/status
Tasks
Files to Modify / Create
- New:
frontend/components/onboarding/OnboardingWizard.tsx
- New:
frontend/lib/react-query/hooks/users/useOnboardingStatus.ts
frontend/app/dashboard/page.tsx
Overview
New members land on the dashboard with no guidance. An onboarding wizard walks them through key setup steps (profile photo, bio, phone verification) immediately after registration, improving profile completeness and member engagement.
Context
frontend/app/dashboard/page.tsx— show wizard here on first visitfrontend/app/settings/page.tsx— existing profile settings (for context on available fields)frontend/lib/store/authStore.ts— for checking if this is a first loginGET /onboarding/statusTasks
frontend/components/onboarding/OnboardingWizard.tsx— modal overlay with 4 steps:firstName/lastNameconfirm, short bio textarea (max 200 chars), interest tags multi-select (e.g. Tech, Design, Finance, Health, Education — predefined list)OnboardingWizardinfrontend/app/dashboard/page.tsx— show only whenGET /onboarding/statusreturnscompletionPercent < 100ANDlocalStorage.getItem('onboarding_dismissed')is not setcompletionPercentcompletionPercent === 100Files to Modify / Create
frontend/components/onboarding/OnboardingWizard.tsxfrontend/lib/react-query/hooks/users/useOnboardingStatus.tsfrontend/app/dashboard/page.tsx