Generate User model
Run database migration
Write spec test for User model to test name and email attributes
Add presence validation for name attribute in User model
Write a failing test if name attribute in User model is blank
Add failing test for email attributes in User model when it is not present
Add presence validation to email attribute in User model
Write a failing test when name attribute is too long
Add length validation to email name attribute
Write failing tests when email attribute is using valid and invalid format
Add format validation to email attribiute using regex
Fix first user email example in User model spec
Add uniqueness validation to email attribute
Modify failing test for email address uniqueness by transforming duplicated email address to upercase
Modify email uniqueness validation by ignoring the case
Create database migration file for adding index to email column, and also set index to be unique
Run database migration for adding a unique index to email
Ensuring email uniqueness by downcasing it
Install ruby bcrypt gem
Write a failing test to ensure that User model has password_digest attribute