Skip to content
Filipi Mosquini edited this page Aug 30, 2023 · 28 revisions

Tarefas

  • Definição de arquitetura
  • Elaboração da modelagem de dados
  • [Backend] Criação da configuração básica da API
  • [Backend] Criação dos endpoints de criação de usuário e login
  • [Backend] Criação dos contratos contendo as regras de validação para o processo de importação do arquivo de transações financeiras.
  • [Backend] Criação do fluxo de importação do arquivo de transações financeiras.
  • [Backend] Configuração do swagger e documentação dos endpoints da API.
  • [Backend] Criação dos testes unitários.
  • [Backend] Criação da query de listagem das transações importadas
  • [Frontend] Cria os componentes os módulos de usuário, navegação e transações financeiras
  • [Frontend] Ajuste dos componentes para o tratamento de erros da aplicação
  • [Frontend] Realiza ajustes finais na aplicação web
  • [Backend] Realiza ajustes finais na API
  • [Infraestrutura] Configura o docker compose para a execução da aplicação

Arquitetura

Foi adotada a arquitetura em três camadas. A motivação para esta decisão se dá pelo fato de a complexidade da demanda abordada e o escopo neste projeto ser pequena, logo, não há necessidade de uma arquitetura mais complexa.

Modelagem de dados

Descrição da tarefa abordada:

Surgiu uma nova demanda urgente e precisamos de uma área exclusiva para fazer o upload de um arquivo das transações feitas na venda de produtos por nossos clientes. Nossa plataforma trabalha no modelo criador-afiliado, sendo assim um criador pode vender seus produtos e ter 1 ou mais afiliados também vendendo esses produtos, desde que seja paga uma comissão por venda.

  • A caracterização do vínculo entre o criador e o afiliado é tida pelo produto (product) e pelo vendedor (seller) aonde neste contexto, um produto (product) está associado a vários vendedores (sellers).
  • Será criada uma tabela para produtos (products), vendedores (sellers), e tipos de transações financeiras (financial transaction types) para fins de normalização dos dados.
  • O conteúdo do arquivo será gravado em uma tabela de transações financeiras (financial transactions).

image

Diário de desenvolvimento

Data Contexto Motivação Justificativa
25/08/2023 Arquitetura Qual será o padrão de arquitetura do projeto? Será utilizado o padrão de arquitetura Three-Tier (Três camadas) devido a complexidade e escopo de demanda baixos.
25/08/2023 Requisito não funcional Qual será o banco de dados utilizado no sistema? Será utilizado o MySQL por questões de opção e gratuidade.
25/08/2023 Requisito não funcional Como a aplicação será executada? Será utilizado o docker para prover toda a estrutura não funcional e o docker compose para a orquestração.
25/08/2023 Requisito não funcional A aplicação trabalhará com autenticação? Sim, Será utilizado o token JWT e para isso utilizaremos o AspNetIdentity para gerenciar a criação e validação do token nos endpoints.
25/08/2023 Requisito não funcional Haverá algum log para as atividades do sistema? Sim. será utilizado o Serilog para capturar os logs e exibí-los em um console
25/08/2023 Backend O projeto trabalhará com exceptions para listar erros esperados? Não. Será adotada a proposta de validação de negócio utilizando o design by contracts, ou seja, tratarei exceptions de fato como exceptions (não se espera que o banco de dados caia!) e os erros de validação serão tratados como possíveis erros logo caso eles existam, serão retornados de forma amigável.
25/08/2023 Backend Será utilizado o Fail Fast Validation? Sim, quanto antes falhar, melhor!
25/08/2023 Backend Criação do projeto Infra.CrossCutting Criado para classificar classes que podem ser usados em mais de uma camada da arquitetura.
25/08/2023 Backend Criação do projeto Infra.Ioc Criado para configurar as dependências do container de injeção de dependências para que seja usada na configuração da API
25/08/2023 Backend Criação dos endpoints de cadastro de usuário e login Será criado para que possamos observar o uso de autenticação e autorização de acesso aos endpoints na aplicação
26/08/2023 Backend Criação dos contratos com as regras de validação para a importação do arquivo Foram criados os contratos com as regras de validação para o processo de importação do arquivo com as transações. Estes contratos validam a estrutura e o conteúdo do arquivo antes de realizar a conversão dos dados para a persistência das informações no banco de dados
26/08/2023 Backend Criação do fluxo de importação do arquivo de transações financeiras Finalização do fluxo de importação do arquivo de transações financeiras
27/08/2023 Backend Cria a documentação da API Configura o swagger para exibir a documentação da API e permitir a adição do token JWT ao acessar endpoints que requeira autenticação
27/08/2023 Backend Cria os testes unitários Cria os testes unitários para as regras de negócio e contratos de validações
28/08/2023 Backend Cria a query de listagem das transações importadas A query retorna os vendedores e o valor total de transações e os detalhes utilizados para o cálculo do valor total
29/08/2023 Frontend Cria os componentes os módulos de usuário, navegação e transações financeiras Estes módulos serão responsáveis pelas ações que a aplicação executará
29/08/2023 Frontend Ajuste dos componentes para o tratamento de erros da aplicação Os erros não estavam sendo exibidos corretamente, logo foi realizado este ajuste
30/08/2023 Backend Ajusta o envio do arquivo para importação adicionando o content type ao request Esta alteração foi realizada pois o método usado para obter o content type utiliza uma DLL do windows e assim não funcionaria em ambiente linux.
30/08/2023 Frontend Realiza ajustes finais na aplicação web  
30/08/2023 Infraestrutura Configura o docker compose para a execução da aplicação  
Clone this wiki locally