Sevidor Menina de UX.
- Deve ser possível se cadastrar;
- Deve ser possível se autenticar;
- Deve ser possível obter o perfil de um usuário;
- Deve ser possível obter todos os perfils de usuários;
- Deve ser possível modificar dados do perfil;
- Deve ser possivel deletar um usuario;
- Deve ser possível castrar um curso;
- Deve ser possivel obter todos os cursos;
- Deve ser possivel buscar um curso pelo nome;
- Deve ser possivel alterar um curso;
- Deve ser possivel deletar um curso;
- Deve ser possivel cadastrar um tipo de cursos;
- Deve ser possivel obter todos os tipos de cursos;
- Deve ser possivel buscar um tipo curso pelo nome;
- Deve ser possivel alterar um tipo de curso;
- Deve ser possivel deletar um tipo de curso;
- O usuário não deve poder cadastrar um usuario com um e-mail duplicado;
- O usuário não deve poder criar um curso com mesmo nome;
- O usuário não deve poder criar um tipo de curso com mesmo nome;
- Os usuários administradores podem criar, editar e deletar usuarios gestores/voluntarios/cursos/tipos de cursos/categoria do usuario;
- Os usuários gestores podem criar, editar e deletar usuarios voluntarios/cursos/tipos de cursos;
- Os usuários voluntarios so pode editar as informação do seu perfil;
- Os usuários voluntarios podem criar cursos;
- A senha do usuário precisa estar criptografada;
- Os dados da aplicação precisam estar persistidos em um banco PostgreSQL;
- Todas listas de dados precisam estar paginadas com 20 itens por página;
- O usuário deve ser identificado por um JWT (JSON Web Token);