Aplicação de gerenciamento de tarefas utilizando Spring Boot 3, MongoDB, Redis, OAuth2, e AWS. Utilizando de springwebflux para a criação de um sistema reativo, com a utilização de MongoDB para persistência de dados, Redis para cache, OAuth2 para autenticação e autorização, AWS S3 para armazenamento de arquivos e AWS Lambda para processamento de eventos.
- Versão: 17
- MongoDB: 4.4.9
- Redis: 6.2.6
- AWS S3: Bucket criado na região us-east-1
- AWS S3: Credenciais configuradas no arquivo
application.properties
Criar seu bucket e configurar as credenciais da aws no arquivo application.properties
- AWS LAMBDA: Criar uma função lambda e configurar o trigger para o S3
public class LambdaHandler implements RequestHandler<S3Event, String> {
@Override
public String handleRequest(S3Event event, Context context) {
event.getRecords().forEach(record -> {
String taskId = record.getS3().getObject().getKey();
String bucketName = record.getS3().getBucket().getName();
System.out.println("Tarefa criada com sucesso id: " + record.getS3().getObject().getKey());
});
return "Tarefa Criado com sucesso" + event.getRecords().get(0).getS3().getObject().getKey();
}
}
- Docker
- Docker Compose
- Clone o repositório:
git clone https://github.com/seu-usuario/apptarefas.git cd apptarefas
- Construa e inicie os containers Docker: necessario ter o docker e docker-compose instalado
docker-compose up --build
Acesse a aplicação em http://localhost:8080.
-
A documentação da API pode ser acessada em http://localhost:8080/swagger-ui.html.
-
Para parar a execução dos containers, utilize o comando:
docker-compose down
-
Ao subir a aplicação, o banco de dados é populado com um usuário padrão:
- Usuário: admin
- Senha: Pamonha123*
-
Para realizar a chamadas das requisições é necessário enviar o token gerado no endpoint de login.