Objetivo • Tecnologias • Percurso
Construir um sistema que permita ao usuário votar num participante indicado para eliminação (paredão) do reality show Big Brother Brasil 22 (BBB 22), por semana.
E conseguir contar os votos totais (inclusive os feitos por robôs) e auditar os votos válidos (votos únicos por usuário), configurando uma porcentagem de votos válidos por candidato à eliminação.
Cada semana devemos auditar e configurar os 3 candidatos à eliminação para que o usuário possa escolher em qual participante remanescente do programa ele deseja votar.
A cada semana, o participante que obtiver o maior percentual de votos é eliminado do programa.
As seguintes ferramentas foram usadas na construção do projeto:
Tipo | Ferramentas | Referência |
---|---|---|
Banco de Dados Não-Relacional | MONGODB | https://www.mongodb.com/try/download/community |
Robo 3T | ROBO 3T | https://robomongo.org/ |
Framework Java Spring Boot - construção do Back-end | SPRING BOOT | https://start.spring.io/ |
API Documentation Library for Spring Boot | OPENAPI 3 | https://springdoc.org/ |
Framework Apache KAFKA | KAFKA | https://kafka.apache.org/ |
View and managing objects a Apache KAFKA | OFFSET EXPLORER | https://kafkatool.com/ |
Docker | DOCKER | https://hub.docker.com/ |
API RESTful using JSON - Swagger UI | SWAGGER | https://swagger.io/ |
Framework Angular - construção da API web | ANGULAR | https://angular.io/ |
- Parte 1 - Configurando/preparando ambiente (Infraestrutura)
- Instalar Apache Kafka, Robo 3T, IntelliJ, VS Code, Docker Desktop
- Abrir e logar o Docker Desktop
- Abrir o VS Code
- Configurar uma pasta Docker, com as subpastas Kafka e MongoDB
- Criar os arquivos de configuração (docker-compose.yml) em cada subpasta criada
- Entrar em cada subpasta criada e subir o serviço para o Docker (docker-compose up -d)
- Parte 2 - Modelando o projeto no DrawIO
- Parte 3 - Criando back-end com Java Spring Boot
- Abrir o Spring Initializr e configurar o Spring Boot
- Gerar o arquivo Spring Boot e abrir no IntelliJ
- Verificar as dependências a serem usadas e configurar o Maven
- Fazer arquivo de configuração de acesso ao MongoDB e ao servidor Apache Kafka
- Povoar mecanicamente o MongoDB com alguns participantes do BBB, incluindo o id (arquivo JSON)
- Construir a API em Java Spring Boot - classes, objetos, datas e interfaces
- Criar a estrutura do microsserviço em Java Spring Boot - classes, objetos, datas e interfaces
- Importar o microsserviço na mesma pasta da API, no IntelliJ
- Construir as classes, datas, objetos e interfaces para o microsserviço
- Buildar os arquivos principais da API e do microsserviço
- Testar as rotas no Postman Rota POST URL: http://localhost:8080/api/parametros/salvar Aba BODY: JSON = { "chave": "config.votacao", "valor": "3" }
- Parte 4 - Criando API web com Angular
- Novo projeto: ng new nomeProjeto
- Iniciando projeto: ng server --open
- Novo componente: ng generate component nomeComponente
- Criar interface: src/app/model/participante.ts
- Criando rota: ng generate module app-routing --flat --module=app
- Importar HttpClientModule em app.module.ts [parte de imports]
- Criar serviço: src/app/service/RestService.ts
- Add @CrossOrigin em ParticipanteController.java e VotacaoController.java
- Implementar as rotas
- Parte 5 - Integrando back-end/front-end e acessando dados