Code assessment === ## Please implement a user registration system in Ruby on Rails. The system would require following features: * As a user, I can visit sign up page and sign up with my email (with valid format and unique in database) and password (with confirmation and at least eight characters). * When I sign up successfully, I would see my profile page. * When I sign up successfully, I would receive a welcome email. * When I sign up incorrectly, I would see error message in sign up page. * As a user, I can edit my username and password in profile page. I can also see my email in the page but I can not edit it. * When I first time entering the page, my username would be my email prefixing, e.g. (email is “user@example.com” , username would be “user”) * When I edit my username, it should contain at least five characters. (Default username does not has this limitation) * As a user, I can log out the system. * When I log out, I would see the login page. * As a user, I can visit login page and login with my email and password. * As a user, I can visit login page and click “forgot password” if I forgot my password. * When I visit forgot password page, I can fill my email and ask the system to send reset password email. * As a user, I can visit reset password page from the link inside reset password email and reset my password (with confirmation and at least eight characters). * The link should be unique and only valid within six hours. ## Please notice the following concerns when implementing: * Use PostgreSQL * Do not use third party library for user registration. (e.g. Devise) * Please use https://github.com/ryanb/letter_opener for the email in development environment. * Write test code in any test suite you like. * Use Git for version control with WELL commit message. * Write README about how to get start for the project. After finish all the tasks, please submit it to Github and share the link to us. Happy coding!