You are required to design an authorization system for a system.
Your system has 3 types of users: administrator, editor, reader.
Each user has certain permissions:
- administrator: has all permissions
- editor: has permission to read and edit articles
- reader: has permission to read articles
Please design an authorization system for the above requirements.
- Your application should have at least the functions in Must have, you can add the functions in Nice to have (these are bonus points)
- Registration / Login
- User authorization (admin, editor, reader)
- Swagger API / Postman collection / ... (any documentation that helps others easily understand your API)
- Article system (CRUD)
- Scalable system (e.g., adding a new type of user)
- Forgot password
- Deploy the application to a free service like Heroku, fly.io, render.com, ... (or any other service)
- Unit test
- Ability to run the application in a Docker container
- Any other features you think are necessary
- Backend: You can use any language you are familiar with such as: NodeJS, Python, ...
- Database: You can use any database you are familiar with such as: MySQL, PostgreSQL, MongoDB, ...
Time to complete: 3 days
After you complete the test, you can send your GitHub link to us via email: [email protected]
Do not forget to clearly state the instructions on how to run your application in the README.md file
Good luck!