flow:

1. User Register
User input email and password to register as user.
Scenario
- When user input valid email and password, it should return success.
- When user input duplicate email, it should return error.
System Requirement
- password should be hashed
2. User Login
User login system by email and password
Scenario
- When user input email and password correctly, it should return access token.
- When user input wrong email, it should return error.
- [TODO] When user input wrong credential too often (maybe 5 times in a minute), system should banned the account.
System Requirement
- [TODO] Rate limit on trying email and password.
3. User list files
User list down all the files that have been created.