Stu Mason
Stu Mason

Activity

StuMason/api.rezzy.one
Rezzy
TypeScript
Pull Request Opened

PR #64 opened: [1.4] User Profile Page

Summary

  • Adds full user profile settings page with all fields from issue requirements
  • Avatar upload with storage to public disk (ready for R2 in production)
  • Username availability check with reserved words validation
  • Bio with character counter, location, and privacy toggle

Changes

  • UserProfileData DTO - Passes profile data to Inertia frontend
  • UpdateUserProfile Action - Handles profile updates and avatar upload/removal
  • ProfileController - Updated to use action, added avatar destroy and username check endpoints
  • Profile Settings Page - Full form with avatar upload, bio (500 char limit with counter), location, privacy
  • Textarea Component - New UI component for bio field
  • Username Check - AJAX availability check on blur with reserved words (admin, rezzy, support, etc.)

Test plan

  • User can view profile settings page
  • User can update name, username, bio, location
  • User can upload avatar (stored correctly)
  • User can remove avatar
  • Username uniqueness validated on blur
  • Username format validated
  • Privacy setting can be changed (public/private)
  • Bio character limit enforced (500 chars)
  • All 85 tests passing

Notes

  • Avatar storage uses public disk in dev, will use S3/R2 in production when configured
  • Mailpit changes from previous work also included in this branch

Closes #9

Stu Mason + AI [email protected]

+852
additions
-44
deletions
18
files changed