https://github.com/alexandrecpedro/bbb22-votation-system
Online Votation System of Big Brother Brazil 22 (2022)
https://github.com/alexandrecpedro/bbb22-votation-system
angular docker explorer java kafka mongodb offset openapi openapi3 robo3t spring-boot swagger swagger-ui
Last synced: about 2 months ago
JSON representation
Online Votation System of Big Brother Brazil 22 (2022)
- Host: GitHub
- URL: https://github.com/alexandrecpedro/bbb22-votation-system
- Owner: alexandrecpedro
- Created: 2022-04-24T19:51:31.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2022-09-16T15:01:33.000Z (over 3 years ago)
- Last Synced: 2025-01-03T19:16:57.147Z (over 1 year ago)
- Topics: angular, docker, explorer, java, kafka, mongodb, offset, openapi, openapi3, robo3t, spring-boot, swagger, swagger-ui
- Language: TypeScript
- Homepage:
- Size: 454 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Sistema de Votação Online do BBB 22
Sistema de Votação Online do Big Brother Brasil 22 (2022)
Objetivo •
Tecnologias •
Percurso
💡 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
- 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