Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 7 days 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 (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-09-16T15:01:33.000Z (over 2 years ago)
- Last Synced: 2024-11-09T08:30:22.535Z (2 months 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