Create user model
Protect name and add male(gender) attribute to users model
Add email and password validation to user model
Automatically create name on user creation and protect name and gender from further changes
Encrypt email and move all environmen parameters to YAML
Add transitions to user model
Make name and gender editable and non-protected, create user factories and user population