Giter VIP home page Giter VIP logo

bbb22-votation-system's Introduction

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


bbb22-votation-system's People

Contributors

alexandrecpedro avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.