Finished chapter 6: added User model, authentication, validation