Um sistema completo de gerenciamento bancário via console desenvolvido em Java. O projeto foi construído com foco em Programação Orientada a Objetos (POO), separação de responsabilidades e escrita de código limpo (Clean Code), simulando um painel administrativo para controle de contas e transações financeiras.
O sistema conta com um menu interativo completo para o administrador:
- Cadastrar Utilizador: Criação de novas contas com ID único, nome, e-mail e data de nascimento.
- Remover Utilizador: Exclusão de contas existentes do sistema através do ID.
- Alterar Nome do Utilizador: Permite a atualização do nome do titular da conta de forma segura.
- Adicionar Saldo (Depósito): Incrementa o saldo de uma conta específica.
- Remover Saldo (Levantamento): Reduz o saldo de uma conta, contendo validação para impedir saldos negativos.
- Transferência Bancária: Realiza a transferência de valores entre duas contas cadastradas com validação automática de fundos.
- Exibir Utilizadores: Lista todas as contas registradas e os seus detalhes em formato formatado.
- Linguagem: Java (v17+)
- Paradigma: Programação Orientada a Objetos (POO)
- API de Datas Moderna (
java.time): Uso deLocalDateePeriodpara o cálculo automatizado e dinâmico da idade do utilizador com base na data de nascimento, eliminando a necessidade de armazenar idades estáticas e prevenindo inconsistências. - Estruturas de Dados:
ArrayListpara manipulação dinâmica e segura da lista de contas em memória. - Tipos Enumerados (Enums): Utilização do
BankStatuspara controlar de forma explícita e legível as operações de fluxo do sistema. - Encapsulamento e Clean Code: Lógica de negócios encapsulada dentro das entidades (
BankeAccount), mantendo a classe principal (Main) limpa e responsável apenas pela interação com o terminal.
O projeto está organizado seguindo as melhores práticas de pacotes em Java:
src/
├── application/
│ └── Main.java # Ponto de entrada da aplicação e interface do menu
├── entities/
│ ├── Account.java # Entidade que representa a conta do utilizador e seus dados
│ └── Bank.java # Gerenciador do banco (regras de negócio, listas e transações)
└── entitiesEnums/
└── BankStatus.java # Enum para controle dos estados das operações
🚦 Como Executar o Projeto
Pré-requisitos
Certifica-te de ter instalado na tua máquina:
Java JDK 17 ou superior.
Uma IDE de tua preferência (IntelliJ IDEA, Eclipse, VS Code) ou o terminal.
Passo a passo no Terminal
Clona o repositório:
Bash
git clone [https://github.com/TEU_USUARIO/NOME_DO_REPOSITORIO.git](https://github.com/TEU_USUARIO/NOME_DO_REPOSITORIO.git)
Navega até a pasta raiz do projeto:
Bash
cd NOME_DO_REPOSITORIO/src
Compila os arquivos Java:
Bash
javac application/Main.java entities/*.java entitiesEnums/*.java
Executa a aplicação:
Bash
java application.Main
💻 Demonstração do Menu
Ao rodar o sistema, serás recebido pela seguinte interface no console:
EXEMPLO:
-----------------------
BANK MENU (ADM ACCESS!!)
[1] - Register user
[2] - Remove user
[3] - Rename user
[4] - Add balance for user
[5] - Remove balance of user
[6] - Transferring money
[7] - Show users
[0] - Exit
Select an option:
✒️ Autor
Desenvolvido com ☕ e dedicação por Lucas de Oliveira Saquette.