Skip to content

fabiuniz/card-system-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

💳 Card System API - Santander/F1RST Challenge

Fluxo do Sistema

Este projeto é um Microserviço focado no processamento de transações de cartões, desenvolvido como parte do processo seletivo para a posição de Analista de Sistemas III.

🚀 Tecnologias e Frameworks

  • Java 11: Linguagem base para conformidade com o ecossistema atual.
  • Spring Boot 2.7: Framework para agilidade no desenvolvimento de microserviços.
  • Arquitetura Hexagonal (Ports and Adapters): Para garantir desacoplamento total da regra de negócio.
  • JUnit 5: Para testes unitários de regras críticas.
  • Docker: Containerização com imagem Amazon Corretto 11 para ambiente Cloud-Ready.
  • Maven: Gerenciamento de dependências e build.
  • Cloud Friendly: Containerização otimizada com Amazon Corretto para deploy imediato em ambientes AWS, Azure ou Kubernetes.
  • OpenAPI/Swagger: Documentação interativa integrada para facilitar o consumo por times de Frontend e Integração.

🏗️ Arquitetura

O projeto utiliza Arquitetura Hexagonal para isolar o domínio das tecnologias externas (bancos de dados, frameworks, APIs externas).

  • Domain: Entidades e regras de negócio puras.
  • Application: Casos de uso e portas de entrada/saída.
  • Adapters (In/Out): Implementações técnicas (REST Controllers, Persistence, etc.).

🛠️ Como Executar o Projeto

Pré-requisitos

  • Docker instalado.
  • Maven 3.8+ (opcional se usar Docker).

Passo 1: Build da aplicação

mvn clean package -DskipTests

Passo 2: Build da Imagem Docker

docker build -t card-system-api:1.0 .

Passo 3: Execução do Container

docker run -d -p 8080:8080 --name santander-api card-system-api:1.0

🧪 Validando a API (Exemplos de Endpoints)

Aprovação de Transação (Valor < 10.000):

curl -X POST http://localhost:8080/api/v1/transactions \
-H "Content-Type: application/json" \
-d '{"cardNumber": "1234-5678", "amount": 500.00}'

Rejeição de Transação (Valor > 10.000):

curl -X POST http://localhost:8080/api/v1/transactions \
-H "Content-Type: application/json" \
-d '{"cardNumber": "1234-5678", "amount": 15000.00}'

🛡️ Diferenciais Implementados

  • Global Exception Handler: Padronização de erros JSON para conformidade com gateways de API.
  • Troubleshooting Ready: Logs estruturados para facilitar a análise em ambientes produtivos.
  • Cloud Friendly: Configuração preparada para ambientes AWS/Azure via Docker.

Desenvolvido por Fabiano - Candidato Analista III

About

💳 Card System API - Santander/F1RST Challenge

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors