Este projeto é uma API para gerenciamento de transações e estatísticas, desenvolvida em Go. O desafio foi retirado do repositório rafaellins-itau/desafio-itau-vaga-99-junior.
api/
: Contém as rotas da API.config/
: Carrega as variáveis de ambiente.controllers/
: Implementa os controladores das rotas.dtos/
: Define os Data Transfer Objects (DTOs).docs/
: Documentação gerada pelo Swagger.services/
: Implementa a lógica de negócios.main.go
: Ponto de entrada da aplicação.
- Go 1.23
- Docker
- Docker Compose
-
Clone o repositório:
git clone https://github.com/gabrielalmir/desafio-itau-backend.git cd desafio-itau-backend
-
Crie um arquivo
.env
com as variáveis de ambiente necessárias.
-
Construa e inicie os containers:
docker-compose up --build
-
Acesse a aplicação em
http://localhost:8080
.
-
Instale as dependências:
go mod download
-
Execute a aplicação:
go run main.go
POST /transacao
: Cria uma nova transação.DELETE /transacao
: Remove todas as transações.GET /estatistica
: Retorna estatísticas das transações.
Os testes estão localizados no diretório services/
e podem ser executados com o seguinte comando:
go test -v ./...
Os testes cobrem as seguintes funcionalidades:
TestGetStatistics
: Verifica se as estatísticas das transações estão corretas.TestCreateTransaction
: Verifica se uma transação é criada corretamente.TestDeleteTransactions
: Verifica se todas as transações são removidas corretamente.TestValidateTransaction
: Verifica se a validação das transações está correta.TestParseSearchInterval
: Verifica se o intervalo de busca é analisado corretamente.
A documentação da API está disponível em http://localhost:8080/swagger/index.html
.
Você pode usar o arquivo api.http
para testar os endpoints da API.
Este projeto está licenciado sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.