Realizado

Aplicação web em .net para processar arquivos transformando formatos

Publicado em 03 de Dezembro de 2020 dias na TI e Programação

Sobre este projeto

Aberto

Esse é o escopo do projeto:

=== funcionalidades
1 - upload de arquivos
2 - listar arquivos recebidos
3 - ler csv
4 - ler xls
5 - ler xlsx
6 - ler txt
7 - ler xml
8 - ler json
9 - escrever csv
10 - escrever xls
11 - escrever xlsx
12 - escrever txt
13 - escrever xml
14 - escrever json
15 - ler arquivo baseado em layout de arquivo posicional como parâmetro pra processamento, campo a campo com tamanho e tipo de cada
16 - ler arquivo baseado em layout com delimitador, escolhendo o separador que pode ser uma string "<>" por exemplo, não necessáriamente só um caracter
17 - pooling em uma pasta no disco aguardando a entrada de arquivos
18 - configuração de pooling, agendando formato de entrada e saída

=== telas
1 - home menu
    exibir arquivos disponíveis pra processar / subir novo arquivo
    processar arquivos
    listar layouts posicionais gravados / cadastrar novo layout posicional
    listar layouts de arquivos separados por delimitador / cadastrar novo layout por delimitador
    configurar processamento de arquivos via pooling
    histórico de arquivos processados

2 - exibir arquivos disponíveis pra processar / subir novo arquivo
    upload com barra de progress
    lista de arquivos já subidos
    voltar ao menu

3 - processar arquivos
    escolher o arquivo
    formato entrada (com opção de direcionar para cadastrar novo layout)
    formato saída
    botão processar
    validação de que o arquivo de entrada é tabular
    barra de progresso
    voltar ao menu

4 - listar layouts posicionais gravados / cadastrar novo layout posicional
    lista dos layouts posicionais
    editar
    novo
        entrar com campo + tipo + tamanho
    voltar ao menu

5 - listar layouts de arquivos separados por delimitador / cadastrar novo layout por delimitador
    lista dos layouts por delimitador
    editar
    novo
    voltar ao menu
6 - configurar processamento de arquivos por pooling
    lista de poolings já configurados
        botão para excluir pooling listado
    novo
        pasta para fazer pooling
        formato de entrada
        formato de saída

7 - histórico de arquivos processados
    lista de arquivos processados, entrada e saída
    data e hora
    link de download do arquivo processado

=== requisitos

REQUISITO 0; não há autenticação. A aplicação pode ser acessada por qualquer um, a restrição, caso necessário fica pelo controle do ip.

REQUISITO 1;

Em todos os formatos de arquivo de entrada, os dados devem ser tabulares. Senão não há como fazer a conversão de formato X para Y livremente. O XML e o Json são os mais fáceis de quebrarem essa regra, então colocaremos um validador, mas esse validador tb será capaz de identificar que os dados tabulares estão no segundo ou terceiro nivel.

Exemplo:
{"dados":
    { "items":
        [ {"col1": "val1", "col2": "val2", "col3": "val3", "col4": "val4"}
        , {"col1": "val1", "col2": "val2", "col3": "val3", "col4": "val4"}
        , {"col1": "val1", "col2": "val2", "col3": "val3", "col4": "val4"}
        , {"col1": "val1", "col2": "val2", "col3": "val3", "col4": "val4"} ]
    }
}

mesmo os dados tabulares estando no terceiro nível, a aplicação conseguirá entender que existem dados tabulares, com nomes de colunas e valores pra cada linha.

No caso do XML, o mesmo risco.
<Note>
    <books>
        <items>
            <to>Tove</to>
            <from>Jani</from>
            <heading>Reminder</heading>
            <body>Don't forget me this weekend!</body>
        </items>
    <books>
</note>


Mesmo no terceiro nível, foi possível encontrar dados tabulares, então as conversões poderão ocorrer, ok! Caso não sejam identificados dados tabulares, a validação dará erro e a mensagem alertada ao usuário.

Os formatos csv, txt, xlsx não têm esse problema por serem sempre tabulares.

REQUISITO 2;
Os arquivos que serão upados para o servidor terão seu limite determinado pela configuração do servidor. É Possível não ter limite algum. Basta configurar.
Por padrão, normalmente o limite é de 20 mega.

=== Entregáveis
sistema em asp.net core web application com páginas web em razor
instalação e configuração em servidor escolhido

Categoria TI e Programação
Subcategoria Programação
Qual é o alcance do projeto? Criar um novo site personalizado
Isso é um projeto ou uma posição de trabalho? Um projeto
Tenho, atualmente Eu tenho especificações
Disponibilidade requerida Conforme necessário
Funções necessárias Desenvolvedor

Prazo de Entrega: 12 de Janeiro de 2021

Habilidades necessárias