Skip to content

[FEAT] Add user profile/settings page #15

@Priyanshu-byte-coder

Description

@Priyanshu-byte-coder

What Needs to Be Done

Create a /profile page where users can view their account info and manage settings:

  • GitHub username, avatar, email
  • Connected accounts (GitHub now, GitLab later)
  • Option to delete account and data

Why This Matters

Users need a way to see what data is stored about them, and a place to manage integrations as we add GitLab support.

Files to Create/Modify

  • src/app/profile/page.tsx — new page
  • src/components/Navbar.tsx — add nav link to profile (or add to dashboard header)
  • src/app/api/user/route.ts — GET current user info from Supabase
  • src/app/api/user/route.ts — DELETE to remove user and all their data

Acceptance Criteria

  • /profile page shows GitHub avatar, username, email
  • Shows account creation date
  • "Delete Account" button with confirmation dialog
  • DELETE /api/user removes user + cascades to goals and snapshots
  • Navigation from dashboard to profile and back
  • No TypeScript errors, lint passes

Tech Context

User data stored in Supabase users table. Use getServerSession(authOptions) for auth in the API route.
For deletion: supabaseAdmin.from('users').delete().eq('github_id', session.githubId) — cascade handles goals/snapshots.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestgssoc26GSSoC 2026 contributionlevel2GSSoC Level 2 - Medium complexity (25 points)mediumMedium difficulty task~4hEstimated 4 hours

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions