Projeto: Aplicação de Apuração de Votos

Para controlar os dados de uma eleição vamos desenvolver um projeto de microsserviços para a coleta, processamento e apresentação de resultados.

Domínio

Arquitetura

arquitetura

Contexto Inicial

sequence

A apresentação dos dados da eleição serão feitas por uma API com os seguintes endpoints:

{
    "status":"...",
    "resultados":[
        {"id_candidato":0,"nome":"","votos":0}
    ],
    "classificacao":{
        "primeiro":{"id_candidato":0,"nome"."votos":0},
        "segundo":{"id_candidato":0,"nome"."votos":0}
    },
    "brancos_nulos": 0,
    "eleitores": {
        "comparecendo": 0,
        "ausentes": 0
    }
}

Retornando uma lista de objetos com os candidatos e seus votos recebidos, o(s) candidato(s) mais candidatos (1 ou 2).

Modelos de Dados

Votação

{
    "id":0,
    "nome":"",
    "candidatos":[
        {
            "id":0,
            "nome":""
        }],
    "eleitors":[
        {
            "id":0,
            "nome":""
        }]
}

Candidato

{
    "id":0,
    "nome":""
}

Eleitor

{
    "id":0,
    "nome":""
}

Voto

{
    "id_votacao":0,
    "id_eleitor":0,
    "id_candidato":0
}

Mensagens

Início da votação

Fim da votação

Voto