Skip to content

Latest commit

 

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Descrição do Projeto:

API DE COMPRA DE APLICATIVOS

Requisitos de negócio

  • A API disponibiliza uma lista de aplicativos.
  • O cliente pode escolher comprar um aplicativo.
  • O cliente pode se cadastrar ou fazer login (se já tiver cadastro).
  • Os parâmetros de cadastro são: nome, cpf, data de nascimento, sexo, endereço completo.
  • O pagamento do aplicativo deve ser feito somente com cartão de crédito.
  • Cartão de crédito pode (opcional) ficar guardado para uso futuro.
  • O sistema só salva cartões que são válidos
  • Não precisa desenvolver a administração dos aplicativos.


Requisitos técnicos

  • As compras/transações devem ser processadas de modo assincrono, colocadas num serviço de fila.
  • Implementação de cache pra listagem dos aplicativos. (opcional).
  • Deve existir um serviço que busca as transações de cartão de crédito para processar da fila (sugiro utilizar o padrão Observer)
  • Tecnologias.
  • Serviço de consumer: Pode ser algo simples, como um console aplication em C# que lerá da fila e armazenará no banco de dados. (O pagamento pode ser aprovado de forma mockada)

Inicialmente foi criado uma solution e posteriormente adicionados os projetos na solution.

Entao, quando for feito o clone no projeto, todo o projeto estará dentro de uma pasta "AppSolution" que é justamente o nome da solution criada inicialmente.


Dados disponibilizados pelo projeto App.Api, onde é feito toda a coleta e busca dos dados em uma base SqlServer.

Cada requisição feita na api, é feito uma solicitação atraves de uma classe Service, que possui toda logica do negocio do projeto, onde é sempre referenciada por uma interface especifica.

O relacionamento entre as classe e suas interfaces, são feitas atraves do startup.cs do projeto.

Existem 3 Nomenclaturas disponivbeis no projeto.

Sevice: Responsavel pelas regras de negocio do projeto, onde é feito todas as validações dos dados imputados e logica do negocio, conversoes, etc..

Repository: Responsavel pela comunicação com repositorios de dados no banco de dados.

Adapters: Responsavel por toda comunicação a sistemas externos, no caso, utilizando uma chama em api.

Projetos:

App.ConsumerConsole

Responsavel por coletar as mensagens na fila de mensagens e processar os pedidos.

App.UI

Responsavel pela requisição dos dados via api e exibir os dados em tela.

App.api

Responsavel por receber as requisições dos aplicativos sendo elas, Get, Post, porem, não foram implementados metodos para receberem requisições do tipo put e delete, option.

App.Domain

Responsavel pela regra de negocio do projeto, onde toda as validações, mudança de status,  e requisição das classe de persistencia no banco(repository) e comunicação externa(Adapters)

App.Adapters

Responsavel pela comunicação externa via api.

App.Repository

Responsavel pela comunicação comunicação entre sistema e banco de dados.

App.Test

Responsavel pelos testes da aplicação, porem, ainda nao foi finalizado.


About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages