O projeto consiste no desenvolvimento de uma aplicação web capaz de carregar arquivos (txt ou xls), em tabela de banco de dados,
com a finalidade de processar o tratamento de e-mails através de funções, criando relatórios exportáveis (xls), com contagens de e-mails consistentes, inconsistentes e em branco, por período ou por origem (arquivo carregado).
O aplicativo deverá ter uma função para tratamento de e-mail que primeiramente aplicará ajustes na tentativa de torná-lo consistente. Exemplos:
-
paulo@uol.com..Br para
paulo@uol.com.br
-
jose@@gmail.com para
jose@gmail.com
-
www.paulocesar@gmail.com para
paulocesar@gmail.com
-
anderson.costa@hotmail.com.br para
anderson.costa@hotmail.com
Após serem aplicados todos os ajustes, a função deverá executar a "crítica" do mesmo, isto é, deverá identificar se o e-mail é consistente ou inconsistente, aplicando regras pré-definidas, como por exemplo:
- Verificar a existência do arroba ("@")
- Verificar a existência de caracteres repetidos em sequência etc.
- Verificar a existência de caracteres inválidos etc.
Além disso, a função deverá ter a capacidade de pesquisar palavras indesejadas em tabelas de apoio , como por exemplo, "naotenhoemail".
Deverá, também, realizar o "de/para" de domínio do e-mail. Exemplo, de:
anderson.costa@hotmail.com.br para:
anderson.costa@hotmail.com
Finalizadas as etapas descritas acima, a função deverá retornar 3 tipos de flag:
B = e-mail em branco
I = Inconsistente
. = E-mail consistente
Também deverá gravar um log em txt ou xls, por arquivo processado, informando:
Nome da coluna com o e-mail: <nome da coluna>
Resultados Obtidos:
Qtde de registros tratados: <quantidade>
Qtde de registros com e-mail inconsistente: <quantidade>
Qtde de registros com e-mail ajustado: <quantidade>
Qtde de registros com e-mail OK e sem ajuste: <quantidade>
Qtde geral de registros OK (ajustados e não ajustados): <quantidade>
Para cada arquivo carregado deverá ser criada uma coluna de identificação, onde a mesma será gravada em todos os registros da tabela.
Esta identificação do arquivo será fornecida pelo usuário do sistema. Exemplo:
O arquivo
20160630.xls foi carregado e todas as linhas da tabela receberão a identificação “Semana de 03.07.2016 a 09.07.2016”. Essa coluna de identificação será utilizada nos relatórios e contagens.
Prazo de Entrega: Não estabelecido