Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save elo7-developer/9f61e95490c9c731f7d46e1f7222dbda to your computer and use it in GitHub Desktop.
Save elo7-developer/9f61e95490c9c731f7d46e1f7222dbda to your computer and use it in GitHub Desktop.

Teste de Programação para Estagiários Elo7

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!

Desenvolvimento de uma agenda de contatos

A tarefa consiste em desenvolver uma agenda de contatos com interface Web.

Persistência dos dados

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)

Adicionar e editar um registro:

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

Listar registros:

O programa deve possuir a funcionalidade de listar todos os registros.

Procurar registro:

O programa deve possuir a funcionalidade de encontrar um registro procurando por um trecho do nome ou do email.

Excluir registro:

O programa deve possuir a funcionalidade de excluir um registro agenda.

Estatísticas:

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

Bônus 1: Twitter

Adicione na agenda o atributo "twitter". Ao mostrar os dados de um registro o programa mostre também o último tweet daquela conta.

Bônus 2: Quartis

Para todos os itens estatísticos adicione o cálculo da mediana, primeiro e terceiro quartil. (https://pt.wikipedia.org/wiki/Quartil)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment