Como parte do processo seletivo para estagiários do Elo7, gostaríamos que você fizesse uma pequena tarefa.
Durante o desenvolvimento dê preferência para implementação em Java ou Python.
O objetivo dessa tarefa é avaliar seu conhecimentos de orientação a objetos, programação e SQL. Crie um projeto no seu Github para que vejamos os passos feitos através dos commits para resolver a tarefa.
Sinta-se à vontade para criar em cima do problema abaixo. Caso algo não esteja claro, pode assumir o que seja mais claro para você e indique suas suposições em documentação. A especificação é bem básica e, portanto, caso deseje evoluir a ideia seguindo essa base.
Qualquer dúvida maior pode nos perguntar, mas no geral, divirta-se!
A tarefa consiste em desenvolver uma agenda de contatos com interface Web.
Todos os dados da agenda deverão estar persistidos em algum tipo de banco de dados SQL. Por exemplo MySQL, SQLite3, ou mesmo um banco de dados remoto como o https://www.heroku.com/postgres
O banco de dados deverá ter uma tabela AGENDA com 2 campos: "nome" (caracter/string com 42 posições) e "email" (caracter/string com 320 posições)
O programa deve possuir a funcionalidade de adicionar e editar um registro na agenda seguindo as seguintes restrições:
- Não deve permitir dois registros com emails duplicados
- Os nomes devem ter ao menos duas palavras e cada palavra ao menos duas letras
O programa deve possuir a funcionalidade de listar todos os registros.
O programa deve possuir a funcionalidade de encontrar um registro procurando por um trecho do nome ou do email.
O programa deve possuir a funcionalidade de excluir um registro agenda.
O programa deve possuir a funcionalidade de mostrar estatísticas baseado nos dados armazenados:
- total de pessoas cadastradas
- tamanho (número de letras) mínimo, máximo e médio dos nomes (considere o nome completo)
- tamanho (número de letras) mínimo, máximo e médio dos primeiros nomes (considere somente a primeira palavra do nome)
- tamanho (número de letras) mínimo, máximo e médio dos e-mails
Adicione na agenda o atributo "twitter". Ao mostrar os dados de um registro o programa mostre também o último tweet daquela conta.
Para todos os itens estatísticos adicione o cálculo da mediana, primeiro e terceiro quartil. (https://pt.wikipedia.org/wiki/Quartil)