Git Product home page Git Product logo

educat-erp's People

Contributors

diogolundberg avatar lucascostadev avatar lucasvbc avatar shferreira avatar shff avatar

Watchers

 avatar  avatar

educat-erp's Issues

Aprovação Acadêmico - Lista

Campos:
Nome do Aluno, Identificação (CPF ou RNE), Data de Nascimento, Email, Telefone Celular, Curso, Data Última Atualização no cadastro, Status Acadêmico (aguardando análise, em análise, aprovado, reprovado)

Tabela com possibilidade ordenação das colunas de acordo com a necessidade do usuário e busca google no topo para filtro rápido de informações da visualização.

Criar endpoints de presign

O endpoint de presign deve receber as seguintes informações:

  • Nome do arquivo
  • Tipo MIME
  • Tamanho

E deve retornar:

  • O URL para onde o recurso deve ser uploadeado.

Exemplo de URL da própria Microsoft:

https://myaccount.blob.core.windows.net/sascontainer/sasblob.txt?sv=2015-04-05&st=2015-04-29T22%3A18%3A26Z&se=2015-04-30T02%3A23%3A26Z&sr=b&sp=rw&sip=168.1.5.60-168.1.5.70&spr=https&sig=Z%2FRHIX5Xcg0Mq2rqI3OlWTjEg2tYkboXr1P9ZUXDtkk%3D

Aqui tem uma explicação desse URL

Modal lateral

Criar componente que possa abrigar um formulário ou uma informação através de um painel que abre lateralmente.
Exemplo

Nota:
Este componente será utilizado a princípio para abrigar o form de criação de registros em um Crud comum.

DDL duplicando campos

Ao começar a digitar o texto em um DDL que é filtrado por outro, acontece este comportamento:
screen shot 2018-03-21 at 09 44 23

Matrícula - Api para envio

Permitir enviar o formulário para aprovação através do post em /enrollments.

Nota:

  • Esta rota não irá receber o formulário de matrícula inteiro.
  • O post no frontend enviará apenas o id/token.
  • Os dados da matrícula serão validados inteiramente no backend, fazendo a consulta para construir o objeto e validando seu estado.

Onboarding - [POST] Enrollments

DDL com rolagem desnescessária

Ao abrir qualquer DDL(com ou sem overflow) a barra de rolagem está aparecendo:

Neste caso exibe barra de rolagem vertical e horizontal, mas não tem overflow dos elementos:
screen shot 2018-03-21 at 09 44 31

Neste segundo, realmente deve ter a barra vertical, mas a horizontal não deveria ser mostrada:
screen shot 2018-03-21 at 12 13 44

Aprovação Financeiro - Lista

Campos:
Financeiro: Nome do Aluno, Identificação (CPF ou RNE), Data de nascimento, Email, Telefone Celular, Curso, Data Última Atualização no cadastro, Plano Escolhido, Status Financeiro (aguardando análise, em análise, aprovado, reprovado)

Tabela com possibilidade ordenação das colunas de acordo com a necessidade do usuário e busca google no topo para filtro rápido de informações da visualização.

Criar Presign

Criar campo deadline no Onboarding

O endpoint GET /enrollment/:token deve retornar um campo data chamado deadline.

Esse campo deve conter a data final da matrícula.

Inicialmente pode ser mockado, porém mais tarde precisa ficar guardado na tabela de dados da matrícula, com período inicial e final. Esses dados serão utilizados também para permitir acesso ao site, e também para permitir salvar dados.

Matrícula - Exibir estado nos cartões

  • Cada um dos cartões deverá mostrar um ícone representando seu estado.
  • O passo no stepper referente ao cartão também deverá exibir o ícone

O estado dos cartões é definido pelos campos:

Estado complexo (ver wiki)

  • Personal data: State do personalData
  • Financial data: State do financialData

Estado booleano

  • Send to approve: sendDate
  • Academic approval: academicApproval
  • Finance approval: financeApproval

Stress test

Precisamos definir uma forma de testar o auto-scale dos webapps.

A princípio gostaria de testar esta ferramenta aqui:
gatling-logo

Alguma sugestão?

Cache de Metadados no cliente

Fazer um cache genérico, client side, do campo "options".

A idéia é sempre enviar uma versão(count) junto ao campo options do json e salva-la juntamente aos dados no localstorage.

Numa próxima requisição, esta versão será enviada ao servidor que decidirá se é necessário enviar o options novamente para o frontend.

Caso um novo options seja enviado, o cliente sobrescreverá a chave do localstorage.

Matrícula - Validação dos Dados financeiros

A validação dos dados financeiros está ignorando os filhos: Guarantor e Representative.

O status do FinanceData só será valid se cumprir as regras abaixo:

  • Se a data de nascimento for menor de 18 anos o Representative é obrigatório.
  • Se a data de nascimento for maior que 18 anos o Representative é o preenchido com os dados pessoais.
  • Dependendo do Plan escolhido, um número de Guarantors deverá ser preenchido.
  • Quando obrigatórios Guarantor e Representative devem ter seus campos validados.

Ajustes de Frontend

  • Liberar exibição dos dados financeiros e usar JSON predefinido na Wiki - Feito em 6ad65ba
  • Retirar animação do material dos inputs no hover e deixar apenas no focus - Feito em 6a5e125
  • Trocar a cor do label do inputbox/dropdown para vermelho quando houver erros... porém não exibir quando o nudge estiver aplicado - Feito em c531a1d
  • Retirar botão de logout - Feito em 9bf9412
  • Aplicar classe blur dentro dos cards quando ainda não tiver carregado (e não permitir trocar de card nesse meio tempo) - Feito em ab6495a
  • CPF, E-mail e Nome devem ser read only - Feito em 45693f5
  • Retirar obrigatoriedade do campo "Nome Social" - Feito em 1c38a46
  • Colocar círculos não completos sem background e apenas com a borda - Feito em 11ae71b
  • Exibir tela de erro quando o GET /api/Enrollments/:token retornar 404 - Feito em 8448b22
  • Utilizar o campo options. personalDocuments para exibir a listagem de documentos - Feito em c450dd8
  • Adicionar campos de necessidades especiais - Feito em d2ed022
  • Adicionar campos extras na parte financeira, que mudam de acordo com a seleção CPF/CNPJ Mockup - Feito em 60908f7
  • Adequar campos JSON de dados financeiros a wiki - Wiki - Feito em a951251
  • Validar CPF e CNPJ no frontend - Feito em 00dfbdc
  • Permitir clicar em steps que ainda não foram concluídos e abri-los (basicamente vamos simplificar os steps) - Feito em 89c51df
  • Adicionar botão para colapsar um card - Feito em 9d7e9eb
  • Exibir status dos passos (completo, pendente, etc) de forma independente do value
  • Colocar ícone mostrando se o card está OK ou não. Será exibido apenas quando o step estiver fechado. Três valores: 1) Pendente (vazio) - 2) Com erros (𐄂) - 3) Correto (✔️) - Mockup

Matrícula - Dados pessoais

Descrição

Formulário de dados pessoais que precisam ser inseridos pelos alunos que vão matricular no sistema.

Mockups

Exemplo: https://xd.adobe.com/view/b79e4b60-33f0-48d3-892e-5a1e29f06e15
Cores do layout: https://xd.adobe.com/view/839256d3-2392-41a9-8df7-3953990183e0/

Definições API

Onboarding - Dados Pessoais

Campos

Texto

  • Nome
  • Nome Social
  • Nome completo da mãe
  • Nacionalidade
  • Escola
  • CEP
  • Logradouro
  • Complemento
  • Bairro
  • CPF (validação e máscara)
  • Email (validação)
  • Telefone Celular (máscara)
  • Telefone Fixo (máscara)

Data

  • Data de Nascimento
  • Ano de conclusão do ensino médio (apenas ano e semestre)

DDL

  • Estado Civil
  • Gênero
  • Naturalidade
  • Estado de Nascimento
  • País de Nascimento
  • País de conclusão do ensino médio
  • Tipo de endereço
  • Cidade
  • Estado
  • Raça/Etnia

Checkbox

  • Seleção de deficiências
  • Seleção de necessidades especiais

Radio

  • Possui alguma Deficiência, Transtorno Global do Desenvolvimento, ou Altas Habilidades/Superdotação?

Upload de arquivos

Para cada documento configurado como documento pessoal, deverá ter uma forma de enviar o arquivo digitalizado deste documento. Exemplo:

Estão definidos(no banco de dados) que os documentos de dados pessoais são Carteira de Identidade e Certidão de nascimento.
O formulário deverá exibir um botão de upload para cada um destes documentos.

Diagrama: https://realtimeboard.com/app/board/o9J_kzt8ofg=/

Regras

  • Observar regras dos campos específicos (datas, etc)
  • O campo CPF já começa preenchido
  • Ao passar para a próxima etapa, demonstrar formulário como Completo ou Incompleto

Definição de Pronto

  • Atualizado em https://app.sandbox.eti.br
  • Dados salvos dados no banco
  • Feedback durante e após o preenchimento
  • Sem perda de dados ao fechar tela, ou seja, formulário deve ser enviado no onBlur e também com um debounce.

Url dos uploads

  • Os uploads deverão ter o path de suas URLs no banco de dados. wiki

  • As Urls deverão seguir o padrão da wiki.

Matrícula - Upload de documentos

Precisamos de duas tabelas/entidades:

  • Uma listagem de documentos requeridos, com dois campos: name e type... onde type seria personal ou guarantor (essas duas coisas podem ficar em outra tabela por exemplo). Essa listagem seria retornada no options do GET /Enrollment.

  • Uma tabela para linkar esses documentos com os Enrollments... além dos campos EnrollmentId e DocumentId também é necessário um campo para guardar JSON contendo os dados do arquivo que foi feito upload. Os documentos preenchidos seriam retornados no data do GET /Enrollment...

Definições(WIP):
https://realtimeboard.com/app/board/o9J_kzt8ofg=/
https://github.com/sandbox-eti/cmmg/wiki/Onboarding#dados-pessoais

Matrícula - Backend

  • Formatar "external_id" como "id"
  • Receber ids como string
  • Resolver o mapping através do external id
  • Salvar os URLs dos documentos
    • Impedimento: está recebendo [ string, ... ]. Deveria receber [ { id: 4b25a45-ba54b43-b345b", external_id: "http://blob.azure/.x.x.x.x.xx.txt" }, ... ] Wiki
  • CPF, E-mail e Nome devem ser read only
    • Impedimento: Eles devem ser criados na rota POST /api/Enrollments/GenerateToken
  • Respeitar estrutura de erros
  • Validação não destrutiva das entidades
  • Seeds são apenas para desenvolvimento
  • Verificar dados repetidos vindo no options #17 duplicando campos

Data table

Criar um componente que possa receber uma lista através da api e desenhar os elementos em uma tabela.

Exemplos:

Regras(Implementadas aqui ou prever isso para futuro card):

  • Paginação
  • Ordenação de colunas
  • Filtro por texto(preferencialmente aceitando mais de uma coluna)
  • Responsividade
  • Ações e links
  • Campos especiais (avatar, etc)

Matrícula - Dados financeiros

Descrição

Formulário de dados financeiros que precisam ser inseridos pelos alunos que vão matricular no sistema.

Mockups

Exemplo: https://xd.adobe.com/view/b79e4b60-33f0-48d3-892e-5a1e29f06e15
Cores do layout: https://xd.adobe.com/view/839256d3-2392-41a9-8df7-3953990183e0/

Definições API

Onboarding - Dados Financeiros

Upload de arquivos

Para cada documento configurado como documento pessoal, deverá ter uma forma de enviar o arquivo digitalizado deste documento. Exemplo:

Estão definidos(no banco de dados) que os documentos de dados pessoais são Carteira de Identidade e Certidão de nascimento.
O formulário deverá exibir um botão de upload para cada um destes documentos.

Diagrama: https://realtimeboard.com/app/board/o9J_kzt8ofg=/
Ver também: #10 Matrícula - Upload de documentos

Regras

  • Só existe responsável se o aluno for menor de 18 anos.
  • Só existe fiador para pagamento parcelado
  • Um fiador para parcelamento em duas vezes
  • Dois fiadores para parcelamento em 3 vezes

Definição de Pronto

  • Atualizado em https://app.sandbox.eti.br
  • Dados salvos dados no banco
  • Feedback durante e após o preenchimento
  • Sem perda de dados ao fechar tela, ou seja, formulário deve ser enviado no onBlur e também com um debounce.

Adicionar ferramenta de qualidade e CI

Ajustes do form

Informações sobre o form

Dados pessoais

  • Utilizar avatar padrão de gênero indefinido
  • A listagem de Necessidades especiais tem que filtrar pela deficiência (disabilityId)
  • Nacionalidade é combo box
    • API - #52 Matrícula - Alterar Nacionalidade para associação
    • Frontend
  • Adicionar consulta por CEP - http://postmon.com.br
    • Backend
    • Frontend
  • N telefones
    • Backend
    • Frontend

Envio de documentos

  • Reestruturar documentos para aplicação das regras - conforme discutido no slack
    • Backend - #54 Reestruturar documentos
    • Frontend
  • Melhorar feedback do envio dos documentos
  • Inserir/Excluir mais de um anexo por documento
  • Visualizar o documento
  • Validações extras por documento

Novo card

  • Card Dados da matrícula/Matriz curricular - #41 Matrícula - Matriz curricular

Dados financeiros

  • Se o aluno for maior de idade, copiar os dados dele pra parte de "Responsável financeiro"
    • Backend - validar se é o mesmo CPF, etc
    • Frontend - copiar e bloquear campos
  • Relacionamento com o aluno é um combo box
    • API - #53 Matrícula - Alterar Relacionamento para associação
    • Frontend
  • Quantidade exata de fiadores varia de acordo com o plano
    • Backend - virá no campo guarantors do options.plans
    • Frontend
  • Endereço/email/telefone no mesmo padrão dos dados pessoais (mesma ordem dos campos, mesmo posicionamento, etc)
    • Backend
    • Frontend

Outros

  • Tooltip
  • Primariamente nos documentos, porém pode ser desnecessários se usarmos os cards material

Validação dos Documentos

  1. Adicionar Validations no DocumentType que funcionará como um array - Referência
  2. As opções de items para o Validations devem ser um enum, ver nomes abaixo.
  3. Definir o nome do ENUM e implementar cada uma das regras:

Dados pessoais

  • (Foreigner) Estrangeiro:RNE é obrigatório e CPF não é exibido
  • (MilitaryDraft) Mulher: não exibe o Alistamento militar.
  • (ForeignGraduation) Formado fora do país: Aparece o Parecer da secretaria de educação e publicação no diário oficial.
  • (MinorAge) Menor de dezoito: O título de eleitor não é obrigatório
  • (GraduationYear) Ano de conclusão mesmo da matrícula: Aceita Declaração de conclusão do ensino médio OU histórico escolar(é obrigatório pelo menos um deles).

A regra deverá ser aplicada para cada ENUM. Exemplo:

RuleFor(document => document).Custom((document, context) =>
{
  if (!document.validations.contains(DocumentValidations.MinorAge)) { return; }
  // implementa regra
}

Dados financeiros

  • (Spouse) Cônjuge: Certidão de casamento obrigatória.

Tipos de documentos

Documentos pessoais:

  • CPF
  • RNE
  • Histórico Escolar do Ensino Médio
  • Certidão de Nascimento ou Casamento
  • Carteira de Identidade
  • Título de Eleitor e Comprovante de Votação
  • Cartão de Vacinação (constanto 3 doses de vacina contra Hepatite B e vacina Dupla-adulto;
  • Documento Militar

Documentos do fiador:

  • Carteira de identidade
  • CPF
  • Comprovante de endereço
  • Certidão de casamento (se for o cônjuge)
  • Comprovante de renda (declaração de imposto de renda completo, ou contra cheque, ou fiança bancária ou decore eletrônico assinado pelo contador e pelo fiador)

Criar ambiente de produção

APIS

Onboarding - onboarding.sandbox.eti.br
Sso - sso.sandbox.eti.br
Upload - upload.sandbox.eti.br

Interface

app.sandbox.eti.br

Detalhes

  • Corrigir as migrations. Devemos evitar resetar o banco de dados. Não é proibido, mas é bom deixar os dados que estarão sendo testados lá.
  • Configurar o DNS no Azure
  • Configurar o domínio de e-mail no Azure - [email protected]

Obs

  • Criaremos releases de acordo com as milestones, portanto não vamos nos preocupar com isso agora.
  • Trabalharemos direto no master, só faremos pull request/release quando necessário.
  • A partir de agora, antes de fechar um Issue peça outra pessoa para verificar se está funcionando mesmo, em produção. No caso de Issues testáveis né, de features.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.