Se você recebeu este teste é porque você foi um dos selecionados para a fase de conhecimento da vaga da HubCount.
Mas vamos para o que importa: O Teste.
- Criar três tela em HTML, CSS e JS (com ou sem frameworks)
- Primeira tela => deve ter o layout parecido com o de uma urna eletrônica (não é necessário mostrar a foto, apenas nome e vice), possuindo 3 passos:
- Inserir o código do candidato à prefeito (2 dígitos), mostrar o dado do candidato e aguardar a tecla de confirmar, limpar ou branco.
- Tela de fim, com um botão de reiniciar votação.
- Segunda tela => cadastro e listagem (com opção de deletar) de candidatos com os seguintes campos (sem layout definido, fique à vontade para criar um):
- Nome Completo
- Legenda
- Terceira tela => dashboard com a quantidade que cada candidato recebeu, mantendo a ordem de quem recebeu mais votos em primeiro na listagem.
- Desenvolver uma API om C# e Entity Framework (o body de retorno e de envio deverá ser em JSON), com os seguintes endpoints:
- /candidate [via POST]: Registro de candidatos.
- /candidate [via DELETE]: Exclusão de candidatos.
- /vote [via POST]: cadastro dos votos. Deverá tratar os votos nulos.
- /votes [via GET]: retorna os candidatos (nome, legenda...) com a quantidade de votos que cada um recebeu.
- O registro de candidatos deverá conter:
- Nome Completo (string)
- Nome do Vice (string)
- Data de registro (DateTime)
- Legenda (int32)
- O registro de votos deverá conter:
- Id do candidato (referência à tabela de candidatos)
- Data do voto (DateTime)
- Crie um branch deste repositório e, quando estiver finalizado, realize um pull request para a master e me envie um e-mail*
- Desenvolver e entregar até a meia noite da data combinada.
- Utilizar a linguagem C# com o Entity Framework e ferramentas web como Javascript, HTML e CSS(Requisitos Obrigatórios)
- Pode utilizar qualquer outra ferramenta que te agrade
- Havendo qualquer dúvida sobre o teste é só entrar em contato pelo e-mail*
*-fernando.cesar@hubcount.com.br
- Data de entrega: não ultrapassar o deadline (7 dias do envio do teste).
- Funcionalidade: deve funcionar da forma pedida.
- Ferramentas: deve utilizar as tecnologias obrigatórias.
- Validações: deve validar os campos e retornar mensagens amigáveis.
- Código: bem escrito e bem descrito.
- Plus*: desenvolver com algum framework JS (AngularJS, Angular 2+, React, Vue ...).
- Plus II*: layout (você não é designer, mas sabemos como uma urna se parece).
- Plus III*: outras tecnologias utilizadas (Dapper, Bootstrap ...).
*: o importante são os outros pontos, mas esse poderá ser escolhido como ponto de desempate