Skip to content

alexandrecpedro/bbb22-votation-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sistema de Votação Online do BBB 22


Avanade Rede Globo

Sistema de Votação Online do Big Brother Brasil 22 (2022)

ObjetivoTecnologiasPercurso



💡 Objetivo

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.



🛠 Tecnologias

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/

Backend



Infraestrutura



Frontend



🔎 Percurso

  1. 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)

  2. Parte 2 - Modelando o projeto no DrawIO

  3. 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" }

  4. 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

  5. Parte 5 - Integrando back-end/front-end e acessando dados