Skip to content

Samuel-Devx/itauproject-java-spring

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


🧡 Desafio Itaú Backend

API REST para registro e análise de transações financeiras em tempo real — solução do desafio técnico oficial do Itaú Unibanco.


Sobre o Projeto

O itauproject é a solução do Desafio Técnico de Backend do Itaú Unibanco, desenvolvida com Java 17 e Spring Boot 3.3.2.

A API recebe transações financeiras via JSON, armazena os dados em memória (sem banco de dados externo) e retorna estatísticas calculadas sobre as transações realizadas nos últimos 60 segundos — atendendo integralmente aos requisitos do desafio.


Funcionalidades

  • Registro de transações financeiras via JSON
  • Cálculo de estatísticas em tempo real (últimos 60 segundos)
  • Limpeza de todas as transações registradas
  • Validação de dados de entrada com Bean Validation
  • Documentação interativa via Swagger UI

Endpoints da API

POST /transacao

Registra uma nova transação financeira.

Request Body:

{
  "valor": 123.45,
  "dataHora": "2020-08-07T12:34:56.789-03:00"
}

Respostas:

Status Descrição
201 Transação criada com sucesso
422 Dados inválidos (valor negativo ou data futura)
400 JSON malformado

GET /estatistica

Retorna as estatísticas das transações dos últimos 60 segundos.

Response Body:

{
  "count": 10,
  "sum": 1234.50,
  "avg": 123.45,
  "min": 10.00,
  "max": 200.00
}
Campo Tipo Descrição
count long Total de transações nos últimos 60s
sum double Soma dos valores das transações
avg double Média dos valores das transações
min double Menor valor entre as transações
max double Maior valor entre as transações

DELETE /transacao

Remove todas as transações registradas em memória.

Resposta: 200 OK


Pré-requisitos

  • Java >= 17
  • Gradle >= 8.x (ou use o wrapper ./gradlew incluso no projeto)

🛠️ Tecnologias Utilizadas

  • Java 17 — Linguagem principal
  • Spring Boot 3.3.2 — Framework para criação da API REST
  • Spring Validation — Validação de dados de entrada
  • Lombok — Redução de código boilerplate
  • SpringDoc OpenAPI 2.6.0 — Documentação via Swagger UI
  • JUnit & Mockito — Testes unitários e de integração
  • Gradle — Gerenciamento de dependências e build

📄 Licença

Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.


Feito por Samuel-Dev 🚀

About

An API that logs transactions, also allowing the retrieval of transaction statistics within 60 seconds.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages