You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
feat(backend+frontend): add username-based public profile lookup endpoint and public learner profile page #283
GET /api/v1/users/:id/public requires a UUID that users do not know. The leaderboard shows usernames — clicking them should navigate to a public profile page. This issue adds username-based lookup on the backend and a public learner profile page on the frontend.
Background
UsersService.getPublicProfile(id) takes UUID — no username-based lookup exists
No GET /api/v1/users/by-username/:username endpoint
Leaderboard usernames need to link to /learners/{username}
Implementation Guide
Backend: add GET /api/v1/users/by-username/:username with case-insensitive username lookup. Return { id, username, xp, badgesCount, coursesCompleted, avatarUrl, bio } — never email or walletAddress. Return 404 for non-existent username. Add Swagger decorators.
Frontend: create frontend/app/learners/[username]/page.tsx showing avatar, username, XP bar, badge count, courses completed, and earned badges grid. Wire to the new endpoint.
Update the leaderboard table (Issue 39) to link each username to /learners/{username}.
Acceptance Criteria
GET /api/v1/users/by-username/:username returns public profile without PII
Activity