Projeto acadêmico desenvolvido para a disciplina DIM0517 - Gerência de Configuração e Mudanças.
O Sys Bank é um sistema bancário em ambiente console/terminal, desenvolvido em Java, com foco em boas práticas de versionamento, organização em camadas e uso de fluxo colaborativo com GitHub.
O projeto contempla operações bancárias essenciais e arquitetura preparada para evolução futura, incluindo testes unitários e acesso aos dados localmente.
| Integrante | Função | GitHub |
|---|---|---|
| Elildes Fortaleza Santos | Desenvolvedor | @Elildes |
| Manuel Jonas Fonseca Barbalho | Desenvolvedor | @manueljonas |
- Java (JDK 17+ recomendado)
- Visual Studio Code
- Eclipse IDE
- Aplicação via Terminal / Console
- Sem banco de dados implementado nesta etapa
- Utilização de dados iniciais com setup inicial em arquivo para testes e demonstração
- Git
- GitHub
- GitLab Flow como estratégia de branches
Java Collections FrameworkJUnit 5(testes unitários futuros)Maven(gerenciamento de dependências)Checkstyle/SpotBugs(qualidade de código)
O sistema contempla 5 operações principais:
- ✅ Cadastrar Conta
- ✅ Consultar Saldo
- ✅ Crédito em Conta
- ✅ Débito em Conta
- ✅ Transferência entre Contas
Separação em camadas com o padrão MCV:
src/
├── main/
│ └── java/
│ ├── view/ -> interação com usuário (terminal)
│ ├── controller/ -> controle do fluxo da aplicação
│ ├── service/ -> regras de negócio
│ └── model/ -> entidades do sistema
└── test/
└── java/ -> testes unitários
Utilização do padrão GitLab Flow conforme material da disciplina:
main→ branch principal de desenvolvimento com versão atualizada do sistema em construçãostaging→ ambiente de homologação / pré-produção, usado para estabilização da próxima versãoproduction→ ambiente de produção, contendo a versão liberada aos usuários
feature/*→ novas funcionalidades criadas a partir damainbugfix/*→ correções criadas a partir dastaging, com merge emstagingemainhotfix/*→ correções urgentes criadas a partir daproduction, com merge emstagingeproduction
Conforme especificação da disciplina, as branches não serão removidas durante o desenvolvimento do projeto.
# Clonar o repositório
git https://github.com/Elildes/sysbank.git
# Entrar na pasta do projeto
cd sys-bank
# Compilar
javac Main.java
# Executar
java MainEste projeto prioriza:
- Boas práticas de versionamento
- Rastreabilidade entre tarefas e commits
- Trabalho colaborativo em equipe
- Organização arquitetural
- Evolução incremental do software
- JDK 17 ou superior
- Maven 3.6 ou superior
# Na raiz do projeto
mvn compile
mvn exec:java -Dexec.mainClass="com.sysbank.Main_Old"File → Import → Maven → Existing Maven Projects- Selecione a pasta raiz do projeto
- Botão direito no projeto →
Run As → Java Application - Selecione
com.sysbank.Main_Old
mvn testImagem publicada no Docker Hub (apenas a API REST, na porta 8080):
🔗 Docker Hub: https://hub.docker.com/r/manueljonas/sysbank
docker pull manueljonas/sysbank:latest
docker run -p 8080:8080 manueljonas/sysbank:latestA API fica disponível em http://localhost:8080/banco/conta.
| Operação | Método | Endpoint | Corpo (JSON) |
|---|---|---|---|
| Cadastrar conta | POST | /banco/conta/ |
{"numero":1,"tipo":"simples","saldoInicial":500} |
| Consultar conta | GET | /banco/conta/{id} |
— |
| Consultar saldo | GET | /banco/conta/{id}/saldo |
— |
| Crédito | PUT | /banco/conta/{id}/credito |
{"valor":100} |
| Débito | PUT | /banco/conta/{id}/debito |
{"valor":50} |
| Transferência | PUT | /banco/conta/transferencia |
{"from":1,"to":2,"amount":50} |
| Render juros (todas poupanças) | PUT | /banco/conta/rendimento |
{"taxa":1} |
Exemplo:
curl -X POST http://localhost:8080/banco/conta/ -H "Content-Type: application/json" -d '{"numero":1,"tipo":"simples","saldoInicial":500}'
curl http://localhost:8080/banco/conta/1Projeto desenvolvido para fins educacionais/acadêmicos.
Simples, organizado e preparado para crescer.