Linguagem, Framework e Banco de Dados:
- Java/Springboot
- PostgreSQL
Container
- Docker
Bibliotecas:
- JPA / Hibernate ORM/Validator
- SpringDoc OpenAPI para documentação
- Spring Security
- Auth0 java-jwt para geração de token
- WebClient para chamadas à APIs
Geração de Documentos:
- Apache POI para Excel
- Apache PDFBox para PDF
- JFreeChart para gráficos
-
Containers Docker:
- Configurar o ambiente de desenvolvimento com Docker, incluindo um DB (e.g. PostgreSQL, MySQL) e a aplicação Spring Boot ✅
-
CRUD de usuários e Transações:
- Implementar operações CRUD para gerenciar perfis de usuário. ✅
- Implementar operações CRUD para gerenciar transações financeiras (depósitos, saques, transferências) ✅
-
Cadastro em massa por Upload:
- Implementar funcionalidade para importar dados de usuários a partir de uma planilha Excel e salvar no BD ✅
-
Análise de Despesas:
- Implementar uma funcionalidade que permite aos usuários visualizar um resumo e análise de suas despesas, categorizando as transações e exibindo gráficos. ✅
-
Criar uma API Mock
- Criar uma API Mock no MockAPI para simular dados de conta bancária dos usuários ✅
-
Consumir uma API Pública:
- Integrar uma API pública de taxas de câmbio (e.g. https://exchangeratesapi.io/) para converter valores de transações em diferentes moedas. ✅
-
Consumir as APIs:
- Mostrar a taxa de câmbio atual em cada transação. ✅
- Exibir o saldo da conta bancária dos usuários usando a API Mock ✅
-
Validação dos Inputs:
- Implementar validações robustas para todas as entradas de dados, incluindo formulários de usuário e transações. ✅
-
Spring Security:
- Implementar autenticação e autorização utilizando Spring Security, garantindo que somente usuários autorizados possam acessar certas funcionalidades ✅
-
Testes Unitários:
- Escrever testes unitários abrangentes para todas as funcionalidades críticas da aplicação ✅
-
Doc OpenAPI e Tech Write:
- Utilizar OpenAPI para documentar todos os endpoints da API. ✅
- Criar uma documentação técnica detalhada descrevendo a arquitetura, principais funcionalidades e instruções para configurar e rodar o projeto ✅
-
Rota para baixar relatório:
- Implementar uma rota que permite baixar um relatório em formato PDF ou Excel contendo um resumo das transações financeiras dos usuários ✅
- Código Fonte da Aplicação
- Arquivo docker compose para configurar o ambiente
- Planilha Excel de exemplo para importação de usuários
- Documentação técnica e OpenAPI
- Testes unitários com cobertura de código
- Demonstração funcional da API com integração das APIs Mock e pública
Será necessário criar um arquivo .env na raíz do projeto com as seguintes variáveis:
SPRING_DATASOURCE_URL
SPRING_DATASOURCE_USERNAME
SPRING_DATASOURCE_PASSWORD
POSTGRES_DB
POSTGRES_USER
POSTGRES_PASSWORD
EXCHANGE_RATES_API_KEY
- Baixar o projeto do repositório no github
2.Realizar o build do projeto com o maven através da IDE ou linha de comando executando:
mvn clean install - Realizar o build da imagem do Docker executando:
docker compose build - Subir os containers docker executando:
docker compose up - Conferir se o projeto iniciou visitando a página da documentação OpenAPI: