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
Implement user profile system with hybrid storage (LocalStorage for anonymous users, database sync for logged-in users). Enable personalized dashboard experience based on user preferences.
Architecture Decisions
Storage Strategy: Hybrid approach
Anonymous users: Preferences in browser LocalStorage
Logged-in users: Preferences synced to PostgreSQL database
"Login to sync across devices" as value-add for authentication
Epic Overview
Implement user profile system with hybrid storage (LocalStorage for anonymous users, database sync for logged-in users). Enable personalized dashboard experience based on user preferences.
Architecture Decisions
Use Cases
Dependencies
Sub-Issues
This epic is broken into 5 sub-issues:
Dependencies Graph
Key Files
New Files
docs/adr/004-user-profiles-architecture.mdsrc/main/java/io/nextskip/auth/api/ProfileEndpoint.javasrc/main/java/io/nextskip/auth/persistence/entity/UserProfileEntity.javasrc/main/java/io/nextskip/auth/persistence/repository/UserProfileRepository.javasrc/main/resources/db/changelog/xxx-add-user-profiles-table.xmlsrc/main/frontend/hooks/usePreferences.tssrc/main/frontend/components/PreferencesModal.tsxModified Files
src/main/frontend/components/activity/usePriorityCalculation.ts- preference-based scoringsrc/main/frontend/views/DashboardView.tsx- settings button in headerVerification