feat(preferences): frontend logic for user preferences
fix(preferences): improve the code
Merge remote-tracking branch 'nikola/user-preferences' into devel