Transaction Analyzer é uma aplicação para análise de transações financeiras e identificação de possíveis transações suspeitas.
O projeto foi proposto pela Alura no Challenge Backend 3ª edição.
-
Autenticação de usuário
Login
: Login de usuário informando email e senha.Cadastrar usuário
: Usuários autenticados podem cadastrar outros usuários, cadastrando nome e email, a senha é gerada automaticamente e enviada para o email cadastrado.
-
Importação de arquivo de transações
: Arquivos do tipo .csv contendo transações financeiras podem ser enviados, o arquivo enviado passa por uma série de validações, sendo salvo apenas as transações com informações válidas.Formato do Arquivo CSV:
BANCO_ORIGEM;AGÊNCIA_ORIGEM;CONTA_ORIGEM;BANCO_DESTINO;AGÊNCIA_DESTINO;CONTA_DESTINO;VALOR;HORA_E_DATA
Exemplo:
BANCO BRADESCO;0055;12345-6;NUBANK;0001;00001-1;80000;2022-09-22T11:32:00
-
Histórico de importações
: Um histórico de importações realizadas é mostrado na tela principal da aplicação.
-
Detalhes de cada importação
: Apartir do histórico de importações pode-se acessar os detalhes de cada arquivo importado, como: data de importação, quem importou, data das transações, e uma lista de todas as transações de tal arquivo.
-
Editar usuário
: Usuários autenticados podem editar informações de outros usuários.
-
Deletar usuário
: Usuários autenticados podem desabilitar o acesso de outros usuário, usuário NÃO podem se auto desabilitar.
-
Lista de usuários
: Uma tela para mostrar todos os usuários cadastrados e suas informações, assim como os botões de EDITAR e DELETAR.
-
Análise de transações
: Uma tela para o usuário informar o mês e ano que deseja a análise, a aplicação mostra as transações suspeitas (transações igual ou superior a R$100.000,00), contas suspeitas (Se o somatório de movimentações no mês for superior a R$1.000.000,00) e agências suspeitas (Se o somatório de movimentações no mês for superior a R$1.000.000.000,00).
VSCode
Java 17
Maven
Spring Boot, Spring MVC, Spring Data JPA, Spring Security
H2 database
Thymeleaf
Lombok
Bean Validation
HTML5
Bootstrap
MySQL
JUnit 5
Mockito
O deploy da aplicação foi realizado no Heroku, você pode testar/brincar/usar aqui, fique a vontade para usar o login admin@email.com.br e senha 123999
OBS: As aplicações que usam conta gratuita do heroku adormecem se ficarem inativas, então pode ser que a primeira requisição demore um pouco, apenas seja paciente 😉.
- Suporte a upload de arquivos em formato XML
- Testes automatizados
- Responsividade das páginas
- Possibilidade de alterar senha
- Aba para exemplificar o formato dos dados
- Aba para mostrar bancos salvos no sistema