-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Filipi Mosquini edited this page Aug 30, 2023
·
28 revisions
- 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
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.
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).
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 |