Add User Profile
As a Host, I want to add my user profile with name, email, and phone number, So that the app can identify me and contact me when needed.
Acceptance Criteria
Section titled “Acceptance Criteria”- Given I am setting up my account or profile
- When I add my user information
- Then I can specify:
- Full name (or first name and last name)
- Email address
- Phone number
- And all fields are validated:
- Name is required and cannot be empty
- Email format is validated
- Phone number format is validated (optional)
- And the user profile is saved
- And I can view and edit my profile from the Settings screen
- And the profile information persists across app sessions
Implementation Status
Section titled “Implementation Status”✅ FULLY IMPLEMENTED (January 2026)
Priority
Section titled “Priority”Medium - Important for account management and contact information
Related Entities
Section titled “Related Entities”- User, UserProfile, Settings
Related Commands
Section titled “Related Commands”CreateUser(to be defined)UpdateUserProfile(to be defined)
Implementation Notes
Section titled “Implementation Notes”Implementation:
-
User Profile Storage: ✅
- Created
shaker/utils/userProfile.tsutility module - Uses
expo-secure-storefor secure persistence (same as app preferences) getProfile()- Retrieves user profile from storagesaveProfile(profile)- Saves user profile to storageclearProfile()- Clears user profile from storage
- Created
-
User Profile Screen: ✅
- Created
shaker/app/(tabs)/settings/user-profile.tsx - Accessible from Settings screen via “User Profile” option
- Form fields:
- Full Name (required, validated)
- Email Address (required, validated format)
- Phone Number (optional, validated format)
- Real-time validation with clear error messages
- Loading state while fetching profile
- Success/error alerts on save
- Created
-
Form Validation: ✅
- Name: Required, cannot be empty
- Email: Required, validated with regex pattern
- Phone: Optional, validated with regex pattern (supports multiple formats)
- Errors clear when user starts typing in a field
- Validation runs on form submission
-
Settings Integration: ✅
- Added “User Profile” option to Settings screen
- Positioned as first option in settings list
- Uses user icon for visual consistency
- Navigates to user profile screen on tap
-
Data Persistence: ✅
- Profile data persists across app sessions using secure storage
- Profile loads automatically when screen opens
- Profile can be edited and saved at any time
Files Created:
shaker/utils/userProfile.ts- User profile storage utilitiesshaker/app/(tabs)/settings/user-profile.tsx- User profile form screen
Files Modified:
shaker/app/(tabs)/settings/index.tsx- Added User Profile option
Usage:
- Navigate to Settings → User Profile
- Enter name, email, and optional phone number
- Save profile - data persists across app sessions
- Profile can be edited at any time
Related Features
Section titled “Related Features”- User authentication (if implemented later)
- Profile editing
- Account settings
- Notifications (if email/phone are used for notifications)