O projeto FlowBank é uma aplicação bancária desktop desenvolvida como projeto acadêmico no curso de Ciência da Computação. O sistema simula operações financeiras básicas de uma instituição bancária, incluindo cadastro de clientes, autenticação, consulta de extrato e transferências entre contas.
- Cadastro de clientes com validação de dados
- Autenticação via login com e-mail e senha
- Extrato bancário com listagem de lançamentos com data, descrição e valor
- Modificação de dados cadastrais para manter o sistema sempre atualizado com os dados do usuário
- Transferência entre contas validada com movimentação em registro duplo (double-entry), vinculado por UUID para garantir rastreabilidade
- Integridade transacional com uso de transações JDBC com rollback automático em caso de falha
- Java como Linguagem principal
- Java Swing para Interface gráfica (GUI)
- PostgreSQL como Banco de dados relacional
- Supabase para Hospedagem do banco de dados
- Git e GitHub para Versionamento de código
O sistema utiliza duas tabelas principais:
- clientes — armazena os dados dos usuários (id, nome, e-mail, celular, data de nascimento, senha)
- extrato — registra todos os lançamentos financeiros, com suporte a transferências vinculadas via coluna id_transferencia (UUID)
- Java JDK 17 ou superior instalado
- IDE Java de sua preferência
- Conta no Supabase com um projeto PostgreSQL configurado
-
Clone o repositório
https://github.com/Adrom4th/FlowBank.git -
Configure as credenciais do banco de dados
public static String URL = "jdbc:postgresql://SEU_HOST:5432/postgres"; public static String USERNAME = "SEU_USUARIO"; public static String PASSWORD = "SUA_SENHA"; public static String DRIVER = "org.postgresql.Driver"; -
Execute o script SQL para criar as tabelas no seu banco de dados.
-
Tabela Clientes
CREATE TABLE clientes ( id SERIAL PRIMARY KEY, nome VARCHAR(50) NOT NULL, email VARCHAR(50) UNIQUE NOT NULL, celular VARCHAR(15) UNIQUE NOT NULL, data_nascimento DATE NOT NULL, senha VARCHAR(30) NOT NULL, data_criacao TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) -
Tabela Extrato
CREATE TABLE extrato ( id_transacao SERIAL PRIMARY KEY, id_cliente INT REFERENCES clientes(id), id_transferencia UUID, tipo_transacao VARCHAR(10) NOT NULL, valor_transacao NUMERIC NOT NULL, forma_pagamento VARCHAR(3) NOT NULL, data_transacao TIMESTAMP DEFAULT CURRENT_TIMESTAMP )
- Abra o projeto na IDE
- Vá em File -> Open Project e selecione a pasta do FlowBank
- Certifique-se de que o driver JDBC do PostgreSQL está nas libraries do projeto
- Execute o projeto com F6 ou clicando em Run Project
Desenvolvido por Matheus Henrique, Matheus Serpeloni Silva, Leonardo Viana, Nicholas Alves e Lucas Ribeiro como projeto de estudos de conceitos de lógica de programação em Java
Este projeto foi desenvolvido para fins acadêmicos.




