Você foi designado para criar um serviço que gerencia filas de sugestões, elogios e críticas de clientes para uma empresa, aproveitando os serviços da AWS, como SNS e SQS. O serviço deve permitir que os clientes enviem suas sugestões, elogios e críticas, que serão enfileirados e processados de acordo com a ordem em que foram recebidos. Além disso, deve ser possível verificar o status da fila e obter informações sobre as mensagens recebidas.
- Implemente uma classe CustomerFeedback que represente uma mensagem de feedback com os seguintes atributos: id, type (tipo de feedback, como "Sugestão", "Elogio" ou "Crítica"), message (mensagem do cliente) e status (status da mensagem, como "Recebido", "Em Processamento" ou "Finalizado").
- Configure um tópico SNS para cada tipo de feedback (Sugestão, Elogio, Crítica) na AWS. Quando um cliente envia um feedback, o sistema deve publicar a mensagem no tópico SNS correspondente.
- Configure uma fila SQS para cada tipo de feedback (Sugestão, Elogio, Crítica) na AWS. Configure as filas para seguir o princípio FIFO (First-In-First-Out).
- Implemente um consumidor de fila SQS para processar os feedbacks da fila. Este consumidor deve ser executado em segundo plano e processar os feedbacks de acordo com a ordem da fila. Quando um feedback for processado com sucesso, seu status deve ser atualizado para "Finalizado".
- Crie um controlador REST em Java usando a biblioteca Spring Boot para expor endpoints para as seguintes operações: a. Enviar um feedback (sugestão, elogio ou crítica) para a fila correspondente no SQS. b. Obter o tamanho atual da fila de feedbacks para cada tipo (Sugestão, Elogio, Crítica). c. Obter informações sobre todos os feedbacks na fila de cada tipo.
- Documente a API REST usando a especificação Swagger ou alguma outra ferramenta de documentação de API.
Grupo:: Sala 4
Anderson de Aguiar de Oliveira |
Lucas Bacarini Reis |
Jardielma Queiroz De Lima Lopes |
Antes de começar, verifique se você atendeu aos seguintes requisitos:
- Java JDK 17: Necessário para executar o projeto Java
- nodejs
- yarn
- Spring Boot
- Maven: Necessário para realizar o build do projeto Java
- Swagger
- react + Material ui
- MongoDB
- Docker
- Okteto
-
Front End:
- Siga as instruções contidas no README.md do diretório feedback-react-app.
-
Back End:
- Siga as instruções contidas no Backend.md do diretório da aplicação Maven.
-
Banco de Dados:
- Siga as instruções contidas no Mongodb.md do diretório da aplicação Maven.
-
Docker:
- Siga as instruções contidas no Docker.md na raiz deste repositório.
-
Okteto:
- O Okteto é uma plataforma de desenvolvimento de aplicativos baseada em contêineres que foi projetada para simplificar e acelerar o desenvolvimento de aplicativos na nuvem. Foram publicados via docker-compose, com banco de dados. Segue os links que, obviamente, é necessário complementar com a rota que se pretende acessar.
- Backend
- Frontend
Segue, collection do Postman para fork com os endpoints e api no Okteto.
Para contribuir com o projeto, siga estas etapas:
- Bifurque este repositório.
- Crie um branch:
git checkout -b <nome_branch>
. - Faça suas alterações e confirme-as:
git commit -m '<mensagem_commit>'
- Envie para o branch original:
git push origin <nome_do_projeto> / <local>
- Crie a solicitação de pull.