Sistema de API REST para gestão de limites de transações PIX, desenvolvida em .NET 8 com AWS DynamoDB.
- .NET 8
- C#
- AWS DynamoDB
- Swagger/OpenAPI
- xUnit, Moq, FluentAssertions, Coverlet, ReportGenerator
O projeto segue os princípios de DDD, Clean Code e SOLID, organizado em camadas:
FraudSys/
├── FraudSys.API/ → Controllers e configuração da aplicação
├── FraudSys.Application/ → Serviços e regras de negócio
├── FraudSys.Domain/ → Entidades e interfaces
├── FraudSys.Infrastructure/ → Repositórios e acesso ao DynamoDB
└── FraudSys.Tests/ → Testes unitários, de integração e de API
- .NET 8 SDK
- Conta AWS com acesso ao DynamoDB
- Git
git clone https://github.com/MatheusGuimaraesBr/fraudsys.git
cd FraudSysEdite FraudSys.API/appsettings.json:
{
"AWS": {
"Region": "sua-regiao",
"AccessKey": "sua-access-key",
"SecretKey": "sua-secret-key"
}
}Repita o mesmo em FraudSys.Tests/appsettings.json.
| Campo | Valor |
|---|---|
| Nome da tabela | gestor-de-limites |
| Partition Key | cpf (String) |
| Sort Key | conta (String) |
cd FraudSys.API
dotnet runDocumentação disponível em: http://localhost:5089/swagger
| Método | Rota | Descrição |
|---|---|---|
POST |
/api/LimiteConta |
Cadastrar limite de uma conta |
GET |
/api/LimiteConta/{cpf}/{conta} |
Buscar limite de uma conta |
PUT |
/api/LimiteConta/{cpf}/{conta} |
Atualizar limite de uma conta |
DELETE |
/api/LimiteConta/{cpf}/{conta} |
Remover registro de limite |
| Método | Rota | Descrição |
|---|---|---|
POST |
/api/TransacaoPix |
Processar uma transação PIX |
POST /api/LimiteConta
{
"cpf": "12345678900",
"agencia": "0001",
"conta": "123456",
"limitePix": 1000.00
}POST /api/TransacaoPix
{
"cpf": "12345678900",
"conta": "123456",
"valor": 300.00
}{
"aprovada": true,
"mensagem": "Transação aprovada.",
"limiteAtual": 700.00
}{
"aprovada": false,
"mensagem": "Limite insuficiente para realizar a transação.",
"limiteAtual": 1000.00
}34 testes organizados em 3 categorias:
| Categoria | Quantidade | Descrição |
|---|---|---|
| Unitários | 17 | Lógica de negócio isolada com mocks |
| Integração | 7 | Repositório conectando ao DynamoDB real |
| API | 10 | Endpoints HTTP testados de ponta a ponta |
powershell -ExecutionPolicy Bypass -File rodar-testes.ps1O relatório HTML será gerado em ./RelatorioCobertura/index.html e aberto automaticamente no navegador.
| Camada | Cobertura |
|---|---|
| FraudSys.Domain | 100% |
| FraudSys.API.TransacaoPixController | 100% |
| FraudSys.Infrastructure | 97.4% |
| FraudSys.API | 90.4% |
| Total | 94% |