Slogan: A financial tracker to help people manage their finances.
O Finncker é um aplicativo desktop moderno desenvolvido em Java + JavaFX para ajudar usuários a organizar suas finanças de forma simples, rápida e intuitiva. Ele permite registrar transações, controlar contas, visualizar gráficos e preparar previsões futuras — tudo com uma interface amigável e responsiva.
Cadastre receitas e despesas com detalhes como data, conta, categoria e descrição.
Gerencie múltiplas fontes de dinheiro, como contas bancárias, carteira e reservas.
Classifique transações para facilitar análises e relatórios.
Acompanhe saldo, fluxo de caixa e métricas importantes em um único lugar.
- Categorização automática de transações
- Previsão de saldo com base em históricos e padrões
- Detecção de gastos incomuns
| Categoria | Tecnologia | Versão / Detalhes |
|---|---|---|
| Linguagem | Java | JDK 24 |
| Interface | JavaFX | Versão 22 |
| Build | Gradle | Kotlin DSL (build.gradle.kts) |
| Testes | JUnit | Jupiter 5.10.2 |
| Mocking | Mockito | 5.7.0 |
| Utilidades | Lombok, Guava, SLF4J | Redução de boilerplate + logging |
O projeto segue o padrão MSCR:
- Model → Entidades, enums e classes de domínio
- Service → Regras de negócio
- Controller → Comunicação com interface e FXML
- Resource → Arquivos (CSS, FXML, ícones, fontes)
Estrutura simplificada:
src/
└── main/
├── java/
│ └── com.github.finncker.desktop/
│ ├── controller/
│ ├── model/
│ ├── service/
│ └── Main.java
└── resources/
├── css/
├── fxml/
├── images/
└── style/
- JDK 24 instalado
- Gradle via wrapper (
./gradlew)
./gradlew clean build
./gradlew run
O projeto possui uma suíte completa de testes unitários localizada em:
src/test/java/com/github/finncker/desktop/
A camada de testes segue a mesma estrutura da aplicação principal, separando testes por serviços e componentes específicos.
| Ferramenta | Uso |
|---|---|
| JUnit Jupiter (JUnit 5) | Framework principal para escrita e execução dos testes |
| Mockito + Mockito JUnit Jupiter | Criação de mocks para isolar dependências |
| AssertJ | Asserções mais legíveis e completas |
| Lombok (para testes também) | Reduz código repetitivo em classes auxiliares |
| JUnit Platform Launcher | Usado pelo Gradle para execução automatizada |
src/
└── test/
└── java/
└── com/github/finncker/desktop/
├── service/
│ ├── AccountServiceTest.java
│ ├── TransactionServiceTest.java
│ └── CategoryServiceTest.java
└── controller/
└── TransactionsControllerTest.java
./gradlew test
Localização dos relatórios:
build/reports/tests/test/index.html
Projeto desenvolvido pelos integrantes:
Arthur Félix • Guilherme Caetano • Gustavo Santos • Heverton Borges
João Lima • Maxsuel Santos • Pedro Almas
Projeto acadêmico livre para estudo e aprimoramento.
Pull Requests, Issues e Sugestões são bem-vindas!
GitHub: www.github.com/Finncker/desktop