- It should be possible to register;
- It should be possible to authenticate;
- It should be possible to obtain the profile of a logged in user;
- It should be possible to list all homeworks;
- It should be possible to add a new homework;
- It should be possible to edit a homework;
- It should be possible to delete a homework;
- It should be possible to mark a homework as completed;
- The user must not be able to register with a duplicate email;
- The user's password must be encrypted;
- Application data must be persisted in a PostgreSQL database;
- All data lists must be paginated using cursor-based pagination;
- The user must be identified by a JWT (JSON Web Token);