Skip to content

EduardoNunes5/educa-facil

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 

Repository files navigation

API Rest para gerenciamento de alunos e cursos

Nesse sistema, é possível gerenciar usuários, cursos e matricular alunos em cursos. Os usuários podem ter um papel (estudante, instrutor ou administrador), cada papel tem níveis de autorização para cada funcionalidade do sistema.

Funcionalidades e permissões

  • Gerenciamento de usuarios
    • Cadastro de usuários (permissão livre)
    • Obter dados de um usuário por username (administrador)

Restrições: Username deve conter apenas caracteres minúsculos, sem numerais e sem espaços. Precisa ser um endereço de e-mail em um formato válido. Pode apenas ter um usuário com o mesmo email/username.

  • Gerenciamento de cursos
    • Cadastro de curso (apenas administradores podem cadastrar e apenas instrutores podem ser instrutores de curso)
    • Inativação de um curso (apenas administradores)
    • Listagem de cursos paginada por status (apenas administradores)

Restrições: Pode apenas ter um curso com o mesmo código. O código de um curso deve ser textual, sem espaços, nem caracteres numéricos, nem caracteres especiais, mas pode ser separado por - , exemplo: spring-boot-avancado. Apenas usuários instrutores podem ser autores de um curso. A data de inativação deve ser apenas definida quando o curso estiver desativado.

  • Gerenciamento de matrículas
    • Realização de matrícula (qualquer usuário logado)

Restrições: Um usuário não pode matricular-se mais de uma vez em um curso. Podemos apenas nos matricular em cursos ativos.


Execução

A execução do projeto pode ser realizada via docker, com o comando:

docker compose up

Você pode executar também através de sua IDE de preferência ou comando maven, por exemplo.
Para isso, deverão ser definidas as seguintes variáveis de ambiente caso queira utilizar um banco de dados mysql:

DATABASE_URL
DATABASE_USER
DATABASE_PASSWORD
JWT_SECRET

Caso contrário, pode definir a variável de ambiente APP_PROFILE=test, assim será utilizado o banco de dados h2 e o flyway será desabilitado.

Por padrão, a porta do servidor será 8090, a do banco de dados (MySQL), 3309.


Tecnologias Utilizadas:

  • Java
  • Spring Boot (Web, Data JPA, Security, Validation)
  • OpenAPI 3.0
  • Flyway
  • Lombok
  • Mapstruct
  • MySQL
  • Docker
  • JWT

Documentação

A documentação da aplicação poderá ser encontrada em:

localhost:{porta}/swagger-ui/index.html

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published