Story 2.6: User Account Management (Basic Profile + Settings) - Wireframe
Story: Epic 2, Story 6 - User Account Management Frontend (Basic Features)
Epic 2 Context
This story implements the foundational user account management features that are essential for all users regardless of role. It consolidates basic profile viewing/editing from story-1.20 with essential settings from story-5.2.
Scope: Basic profile + essential settings only Advanced Features: Content preferences, quiet hours, GDPR data export deferred to Epic 7 (Story 5.2)
Visual Wireframe
Profile View (Default Tab)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Back My Account β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β [Tab: π€ Profile] [Tab: βοΈ Settings] β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββ PROFILE HEADER βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β β
β β ββββββββββββββββ Anna MΓΌller β β
β β β β TechCorp AG β β
β β β [π€ Photo] β β β
β β β 200Γ200px β π§ anna.mueller@techcorp.ch β β
β β β β β β
β β ββββββββββββββββ Active Roles: π― Organizer π€ Speaker π€ β β
β β Member Since: January 2020 β β
β β β β
β β [Upload New Photo] [Remove Photo] [Edit Profile] β β
β β β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββ PERSONAL INFORMATION ββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β β
β β Full Name: Anna MΓΌller β β
β β Email: anna.mueller@techcorp.ch β Verified (Cognito) β β
β β Company: TechCorp AG [View Company Profile] β β
β β β β
β β Bio: (max 2000 characters) β β
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β Passionate about distributed systems and cloud architecture. β β β
β β β Speaker at multiple tech conferences. Leading digital β β β
β β β transformation initiatives at TechCorp AG. β β β
β β β β β β
β β β [... up to 2000 characters of biography text ...] β β β
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββ ROLE-SPECIFIC INFORMATION βββββββββββββββββββββββββββββββββββββββββββββ β
β β β β
β β [Tab: π― Organizer] [Tab: π€ Speaker] [Tab: π€ Attendee] β β
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β
β β Speaker Profile (Active) β β
β β β β
β β Expertise Areas: β β
β β β’ Cloud Architecture β’ Distributed Systems β’ DevOps β’ Kubernetes β β
β β β β
β β Speaking Experience: 12 presentations at BATbern events β β
β β Average Rating: β
β
β
β
β
4.8/5.0 (156 attendee reviews) β β
β β Last Presentation: "Microservices at Scale" - May 2024 β β
β β β β
β β Upcoming Speaking Engagements: β β
β β β’ BATbern Fall 2025 - "Event-Driven Architecture" [View Details] β β
β β β β
β β [View Full Speaker Profile] [Manage Presentations] β β
β β β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββ ACTIVITY HISTORY βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β β
β β Recent Activity [View All β] β β
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β
β β β Submitted presentation materials for Fall 2025 event β β
β β 2 days ago β β
β β β β
β β π
Registered for BATbern Fall 2025 β β
β β 1 week ago β β
β β β β
β β β Received 5-star rating for "Microservices at Scale" β β
β β 2 weeks ago β β
β β β β
β β π Updated speaker profile and bio β β
β β 3 weeks ago β β
β β β β
β β π€ Accepted speaking invitation for Fall 2025 β β
β β 1 month ago β β
β β β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Settings Tab (Basic Configuration)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Back My Account β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β [Tab: π€ Profile] [Tab: βοΈ Settings] β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββ SETTINGS NAVIGATION βββββββ ββββ ACCOUNT SETTINGS ββββββββββββββββββ β
β β β β β β
β β β Account β β Account Information β β
β β β Notifications β β β β
β β β Privacy β β Email Address β β
β β β β βββββββββββββββββββββββββββββββββββ β β
β β βββββββββββββββββββββββββ β β β anna.mueller@techcorp.ch β β β
β β Advanced Settings (Epic 7): β β βββββββββββββββββββββββββββββββββββ β β
β β β’ Content Preferences β β β Verified (managed by Cognito) β β
β β β’ Language & Accessibility β β β β
β β β’ Data & Export β β Password β β
β β β β [Change Password] β β
β β β β β β
β β β β Appearance β β
β β β β Theme: β Light β Dark β Auto β β
β β β β β β
β β β β Regional Settings β β
β β β β Timezone: β β
β β β β βββββββββββββββββββββββββββββββββββ β β
β β β β β Europe/Zurich (CET) βΌ β β β
β β β β βββββββββββββββββββββββββββββββββββ β β
β β β β (Autocomplete search) β β
β β β β β β
β βββββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββ NOTIFICATIONS ββββββββββββββ ββββ NOTIFICATION SETTINGS βββββββββββββ β
β β (When "Notifications" tab β β β β
β β is selected) β β Notification Channels β β
β β β β β β
β β β β β Email notifications β β
β β β β β In-app notifications β β
β β β β β Push notifications β β
β β β β β β
β β β β Notification Frequency β β
β β β β β Immediate β β
β β β β β Daily digest β β
β β β β β Weekly digest β β
β β β β β β
β β β β βΉοΈ Advanced notification settings β β
β β β β (quiet hours, granular controls) β β
β β β β available in Advanced Settings β β
β β β β (Epic 7) β β
β β β β β β
β βββββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββ PRIVACY ββββββββββββββββββββ ββββ PRIVACY CONTROLS ββββββββββββββββββ β
β β (When "Privacy" tab is β β β β
β β selected) β β Profile Visibility β β
β β β β β β
β β β β Who can see your profile? β β
β β β β β Public β β
β β β β β Members only β β
β β β β β Private β β
β β β β β β
β β β β Profile Information Display β β
β β β β β Show email address β β
β β β β β Show company on profile β β
β β β β β Show activity history β β
β β β β β β
β β β β Communication β β
β β β β β Allow messaging from other users β β
β β β β β β
β β β β [View Privacy Policy] β β
β β β β β β
β βββββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββββββββββββ β
β β
β [Cancel] [Save Changes] β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Scope Definition
β Included in Story 2.6 (Epic 2 - Foundational)
Profile Tab:
- View user profile with personal information (name, email, company, bio)
- Edit basic profile fields (firstName, lastName, bio - max 2000 chars)
- Upload/change/remove profile picture (ADR-002 Generic File Upload)
- Role-specific information display (tabbed interface)
- Recent activity history (last 5 items)
- View company affiliation
Settings Tab - Account:
- Email display (read-only, verified status from Cognito)
- Password change workflow (redirects to Cognito)
- Theme selector (light/dark/auto)
- Timezone selector (autocomplete)
Settings Tab - Notifications:
- Notification channel toggles (email, in-app, push)
- Notification frequency (immediate/daily digest/weekly digest)
- Note about advanced features (quiet hours) in Epic 7
Settings Tab - Privacy:
- Profile visibility (public/members only/private)
- Profile information display toggles (email, company, activity history)
- Allow messaging toggle
β Deferred to Story 5.2 (Epic 7 - Advanced Attendee Features)
Advanced Content Preferences:
- Interest tags and topic selection
- Content language preferences
- Experience level filtering
- Content format preferences
- Default view mode
Advanced Notification Settings:
- Quiet hours configuration
- Granular notification channels (email/in-app/push)
- Per-event notification customization
- Content recommendation notifications
Language & Accessibility:
- UI language selection
- Date/time format preferences
- Accessibility options (high contrast, larger text, screen reader optimizations)
Data & Export:
- GDPR data export request
- Account deactivation (60-day retention)
- Account deletion
- Data download history
Key Interactive Elements
Profile Tab
- Profile Photo: Click to upload/change profile picture. Drag-and-drop supported. Max 5MB, JPEG/PNG.
- [Upload New Photo]: Opens file picker, shows crop interface, uses ADR-002 3-phase upload
- [Remove Photo]: Deletes profile picture, reverts to default avatar
- Role Badges: Visual indicators showing all active roles (Organizer, Speaker, Partner, Attendee)
- Company Link: Click β[View Company Profile]β to navigate to company detail page (Story 2.5.1)
- Role Tabs: Switch between role-specific information displays (Organizer/Speaker/Partner/Attendee)
- Activity Timeline: Scrollable list of recent 5 activities with timestamps
- [View All β]: Expands activity history to full-page view with filters
- [Edit Profile]: Opens inline editing mode for name and bio fields
Settings Tab
- Tab Navigation: Three sub-tabs (Account, Notifications, Privacy)
- Account Sub-Tab:
- [Change Password]: Redirects to Cognito password change flow
- Theme Selector: Radio buttons for light/dark/auto theme
- Timezone Selector: Autocomplete dropdown with IANA timezone database
- Notifications Sub-Tab:
- Channel Toggles: Checkboxes for email, in-app, push notifications
- Frequency Selector: Radio buttons for immediate/daily digest/weekly digest
- Privacy Sub-Tab:
- Visibility Selector: Radio buttons for public/members only/private
- Information Display Toggles: Checkboxes for email, company, activity history, messaging
- Save/Cancel: Persistent save bar at bottom, auto-save indication
Functional Requirements Met
-
FR1: Role-based authentication with distinct interfaces
- Displays all active roles for the user with visual badges
- Shows role-specific information in tabbed interface
- Adapts content based on userβs assigned roles
-
FR22: User role management
- Displays current roles
- Links to role management (organizers only)
-
FR14 (Partial): Personal engagement management - basic features only
- Basic notification preferences
- Newsletter subscription
- Profile visibility controls
- Advanced features deferred to Epic 7
User Interactions
Viewing Profile Information
- User navigates to βMy Accountβ from main navigation menu
- System loads user data from API (personal info, roles, activity)
- Profile tab displays by default
- User can browse personal information, role-specific data, and recent activity
- User can switch to Settings tab for configuration
Editing Profile
- User clicks [Edit Profile] button in Profile tab
- Form fields become editable (firstName, lastName, bio)
- System-managed fields remain read-only (email from Cognito, company from company affiliation)
- User modifies editable fields
- Real-time client-side validation provides feedback (bio max 2000 chars)
- User clicks [Save Changes] or [Cancel]
- If saved, API call:
PATCH /api/v1/users/mewith changed fields - Success toast notification confirms save, display refreshes
Managing Profile Photo (ADR-002 Generic File Upload Service)
- User clicks on profile photo or [Upload New Photo] button
- File picker opens (or drag-and-drop zone activates)
- User selects image file
- Client validates file size (<5MB) and type (JPEG/PNG)
- Image preview shows cropping interface (200Γ200px square)
- User adjusts crop and clicks [Upload]
- Three-Phase Upload (ADR-002):
- Phase 1: Call
POST /logos/presigned-urlto initiate upload - Phase 2: Upload directly to S3 using presigned URL with progress tracking
- Phase 3: Call
POST /logos/{uploadId}/confirmto verify upload
- Phase 1: Call
- Association: Call
PATCH /users/mewithprofilePictureFileId - User Service associates logo with user profile and updates
profilePictureUrl - Profile refreshes with new photo from CloudFront CDN
Configuring Notifications (Settings Tab)
- User clicks Settings tab
- User clicks βNotificationsβ sub-tab
- User toggles notification channels (email, in-app, push)
- User selects notification frequency (immediate/daily digest/weekly digest)
- User clicks [Save Changes]
- API call:
PUT /api/v1/users/me/preferenceswith updated notification settings - Success toast confirms save
- Note displayed: Advanced options (quiet hours, granular controls) in Epic 7
Configuring Privacy (Settings Tab)
- User clicks Settings tab
- User clicks βPrivacyβ sub-tab
- User selects profile visibility level (public/members only/private)
- User toggles profile information display (email, company, activity history)
- User toggles allow messaging preference
- User clicks [Save Changes]
- API call:
PUT /api/v1/users/me/settingswith updated privacy settings - Success toast confirms save
API Requirements
Initial Page Load APIs
Updated with Story 1.23 Consolidated User APIs
- GET /api/v1/users/me?include=profile,roles,activity,companies
- Auth: Required (JWT token)
- Query params:
includeparameter for related data - Returns: Complete user object with all related data
- Performance: <150ms (P95) with caching
- Consolidates: Replaces /users/{id}/profile, /users/{id}/roles, /users/{id}/activity (3 β 1)
User Action APIs
Updated with Story 1.23 Consolidated APIs
-
PATCH /api/v1/users/me
- Triggered by: [Save Changes] button after editing profile
- Auth: Required (JWT token)
- Payload: Partial update with only changed fields
- Response: Updated user object
- Performance: <150ms (P95)
-
PUT /api/v1/users/me/preferences
- Triggered by: [Save Changes] in Notifications tab
- Auth: Required (JWT token)
- Payload: User preferences object
- Response: Updated preferences
-
PUT /api/v1/users/me/settings
- Triggered by: [Save Changes] in Privacy tab
- Auth: Required (JWT token)
- Payload: User settings object
- Response: Updated settings
-
POST /api/v1/logos/presigned-url (ADR-002 - Phase 1)
-
PUT {uploadUrl} (ADR-002 - Phase 2)
-
POST /api/v1/logos/{uploadId}/confirm (ADR-002 - Phase 3)
-
PATCH /api/v1/users/me (Associate Logo)
-
DELETE /api/v1/users/me/picture (Remove Profile Picture)
See story-1.20-user-profile.md for detailed API specifications.
Navigation Map
Primary Navigation Actions
- β Back button β Navigate to role-specific dashboard
- Profile/Settings Tabs β Switch between Profile and Settings views (client-side)
- Settings Sub-Tabs β Switch between Account, Notifications, Privacy (client-side)
- [View Company Profile] β Navigate to Company Management Screen (Story 2.5.1)
- [View Full Speaker Profile] β Navigate to Public Speaker Profile (Epic 6)
- [Manage Presentations] β Navigate to Speaker Dashboard (Epic 6)
- [View All β] β Navigate to full Activity History page
- Social media links β Open external URLs (new tab)
Advanced Features Link
- Settings Tab Sidebar shows grayed-out items for advanced features:
- βContent Preferencesβ (Coming in Epic 7)
- βLanguage & Accessibilityβ (Coming in Epic 7)
- βData & Exportβ (Coming in Epic 7)
- Users can click these to see βFeature coming soonβ message with Epic 7 timeline
Technical Notes
- Profile Photo Storage (ADR-002): Generic File Upload Service with 3-phase pattern
- Image Processing: Lambda function for resizing/cropping to 200Γ200px (future enhancement)
- Role Data Source: AWS Cognito custom attributes + PostgreSQL user_roles table
- Activity Timeline: EventSourcing pattern - query from event store for audit trail
- Real-time Updates: WebSocket connection for activity feed updates when user is active
- Caching Strategy: Profile data cached in Caffeine for 5 minutes, invalidated on update
- Responsive Design: Two-column layout collapses to single column on mobile (<768px)
- State Management:
- Zustand store for global user state
- React Query for server state (user profile, preferences, settings)
- Internationalization (i18n):
- Library: i18next + react-i18next
- Namespace:
userAccount - Supported Languages: German (de-CH) primary, English (en-US) secondary
- All UI text must be fully translatable
Acceptance Criteria
Profile Tab
Settings Tab - Account
- All changes show [Save Changes] button, persist via
Settings Tab - Notifications
- Changes persist to UserPreferences via
Settings Tab - Privacy
- Changes persist to UserSettings via
General
- All UI text fully translatable (i18n namespace:
userAccount
Responsive Design Considerations
Mobile Layout Changes (<768px)
- Single Column Layout: Profile header, info, role tabs, and activity stack vertically
- Tabs: Profile/Settings tabs become horizontal scrollable buttons at top
- Settings Navigation: Sub-tabs (Account/Notifications/Privacy) become accordion or bottom sheet
- Compact Profile Header: Photo appears above name/title (vertical layout)
- Sticky Header: User name/photo sticky at top when scrolling
- Bottom Action Bar: [Save Changes] button fixed at bottom on mobile
Tablet Layout (768px - 1024px)
- Two Column Layout Maintained: Left sidebar + right main content
- Responsive Tabs: Tabs remain horizontal but with adjusted spacing
- Touch Targets: All buttons minimum 44Γ44px for touch accessibility
Accessibility Notes
- ARIA Labels: All interactive elements have clear aria-labels
- Keyboard Navigation: Full keyboard support with logical tab order
- Screen Reader Support: Activity timeline, role changes, success/error messages announced
- Color Contrast: WCAG 2.1 AA compliant (4.5:1 minimum contrast ratio)
- Focus Indicators: Clear visible focus indicators (2px solid outline)
- Alternative Text: Profile photo has alt text with userβs full name
- Form Labels: All form fields properly labeled
Internationalization (i18n) Requirements
Translation Namespace
Namespace: userAccount
File Paths:
web-frontend/src/i18n/de/userAccount.json(German - Primary)web-frontend/src/i18n/en/userAccount.json(English - Secondary)
Key Translation Categories
Tabs & Navigation:
{
"tabs.profile": "Profil" / "Profile",
"tabs.settings": "Einstellungen" / "Settings",
"settings.account": "Konto" / "Account",
"settings.notifications": "Benachrichtigungen" / "Notifications",
"settings.privacy": "Datenschutz" / "Privacy",
"back": "ZurΓΌck" / "Back"
}
Profile Section:
{
"profile.editProfile": "Profil bearbeiten" / "Edit Profile",
"profile.uploadPhoto": "Neues Foto hochladen" / "Upload New Photo",
"profile.memberSince": "Mitglied seit" / "Member Since",
"profile.bio": "Γber mich" / "Bio",
"profile.recentActivity": "Letzte AktivitΓ€ten" / "Recent Activity",
"profile.viewAll": "Alle anzeigen" / "View All"
}
Settings Section:
{
"settings.changePassword": "Passwort Γ€ndern" / "Change Password",
"settings.saveChanges": "Γnderungen speichern" / "Save Changes",
"settings.cancel": "Abbrechen" / "Cancel",
"notifications.emailNotifications": "E-Mail-Benachrichtigungen" / "Email Notifications",
"privacy.profileVisibility": "Profil-Sichtbarkeit" / "Profile Visibility",
"privacy.viewPolicy": "Datenschutzrichtlinie anzeigen" / "View Privacy Policy"
}
Success/Error Messages:
{
"success.profileUpdated": "Profil erfolgreich aktualisiert" / "Profile updated successfully",
"success.photoUploaded": "Foto erfolgreich hochgeladen" / "Photo uploaded successfully",
"success.settingsSaved": "Einstellungen gespeichert" / "Settings saved",
"error.uploadFailed": "Upload fehlgeschlagen" / "Upload failed",
"error.saveFailed": "Speichern fehlgeschlagen" / "Save failed"
}
See story-2.4b-user-management-screen.md for complete i18n implementation patterns.
Edge Cases & Error Handling
- Empty State - No Activity: Show βNo recent activity yetβ with friendly message
- Empty State - No Roles Assigned: Show βNo roles assigned. Contact administrator.β
- Loading State - Profile: Display skeleton loaders during data fetch
- Loading State - Photo Upload: Show progress spinner and percentage
- Error State - Profile Load Failed: Show error message with [Retry] button
- Error State - Photo Upload Failed: Show inline error with specific reason (file size, format, network)
- Error State - Invalid Photo Format: Client-side validation before upload
- Permission Denied: If user tries to edit another userβs profile (should not be accessible)
- Network Offline: Show offline indicator, cache data for offline viewing
- Slow Connection: Progressive loading - show profile header first, then details
- Concurrent Edits: Detect if profile modified during edit, warn before overwriting
- Session Expired During Edit: Detect 401 response, prompt to re-authenticate without losing form data
State Management
Local Component State
activeTab: 'profile' | 'settings'- Current main tabactiveSettingsTab: 'account' | 'notifications' | 'privacy'- Current settings sub-tabeditMode: boolean- Whether profile is in edit modeactiveRoleTab: UserRole- Currently displayed role tab in profile viewphotoUploadDialogOpen: boolean- Photo upload dialog visibilityformData: ProfileFormData- Temporary form data during editingformErrors: Record<string, string>- Validation errors
Global State (Zustand Store)
auth.user: User- Current user profile data (synced after updates)auth.currentRole: UserRole- Active role contextauth.availableRoles: UserRole[]- All roles assigned to user
Server State (React Query)
- Query Key:
['user-profile', userId](Stale: 5min, Cache: 30min) - Query Key:
['user-preferences', userId](Stale: 10min, Cache: 1hr) - Query Key:
['user-settings', userId](Stale: 10min, Cache: 1hr) - Query Key:
['user-activity', userId, { limit: 5 }](Stale: 1min, Cache: 10min)
Performance Targets
- Initial Page Load: <150ms (P95) for
GET /users/me?include=profile,roles,activity,companies - Profile Update: <150ms (P95) for
PATCH /users/me - Settings Update: <200ms (P95) for
PUT /users/me/preferencesor/settings - Photo Upload (Phase 1): <100ms for presigned URL generation
- Photo Upload (Phase 2): Progress tracking for S3 upload
- Photo Upload (Phase 3): <200ms for confirmation
- Activity History: <100ms for last 5 items
Change Log
| Date | Version | Description | Author |
|---|---|---|---|
| 2025-11-02 | 1.0 | Initial creation consolidating story-1.20 and story-5.2 basic features | Winston (Architect) |
Review Notes
Consolidation Rationale
This story consolidates basic user account management features from:
- story-1.20-user-profile.md: Profile viewing and editing
- story-5.2-user-settings.md: Basic account, notification, and privacy settings
Advanced features (content preferences, language/accessibility, GDPR data export) are intentionally deferred to Epic 7 (Story 5.2) to focus Epic 2 on foundational entity management.
Design Decisions
- Two-Tab Structure: Profile (view-focused) + Settings (config-focused) provides clear separation
- Settings Sub-Tabs: Three basic tabs (Account, Notifications, Privacy) with advanced features clearly marked as βComing in Epic 7β
- Photo Upload Consistency: Available in both Profile and Settings > Account tabs
- API Consolidation: Uses Story 1.23 consolidated user APIs to minimize HTTP requests
- Responsive First: Mobile, tablet, desktop layouts all considered
Open Questions
- Q1: Should we show βAdvanced Settings (Epic 7)β items as disabled/grayed-out or hide them completely?
- Decision: Show as grayed-out with βComing soonβ tooltip to set expectations
- Q2: Should password change open a modal or navigate to dedicated page?
- Decision: Modal for better UX (keeps user in context)
- Q3: Should we allow users to delete their profile photo or just replace it?
- Decision: Both [Upload New Photo] and [Remove] buttons for flexibility
Related Stories
- story-1.20-user-profile.md: Original user profile wireframe (source for Profile tab)
- story-5.2-user-settings.md: Original user settings wireframe (source for Settings tab basic features)
- Story 2.1b: User Management Service Foundation + API Consolidation (backend implementation)
- Story 2.4: User Role Management (role display in profile)
- Story 2.5.2: User Management Frontend (admin user management screen)
- Story 5.2 (Epic 7): Advanced user settings (content preferences, language, GDPR, deferred features)