How igorpacheco1/easy-finance works
Easy Finance is a personal-finance PWA backed by a Spring REST API. A user records income or expenses with a category and date; the app submits them to the API, which applies transaction and category rules and persists them. The app also supports month summaries, paginated history, filtered search, category management, and offline queued submissions. The README documents PostgreSQL, IndexedDB, and background sync; unsampled subsystems are represented by their exact directories or listed files, with only documented relationships shown.
Main entry points: cliente.ts HTTP client · TransacaoController.java Transaction endpoints · TransacaoService.java Transaction rules · CategoriaRepository.java Category data
Components 24
PWA experience
- Record entry
web/src/paginas/LancarPagina.tsx - HTTP client
web/src/api/cliente.ts - API types
web/src/api/tipos.ts - Month view
web/src/mes/useDadosDoMes.ts - Category summary
web/src/mes/useResumoDoMes.ts - Transaction search
web/src/busca/useBusca.ts - Category management
web/src/categorias/useCategorias.ts - Date formatting
web/src/formatacao/datas.ts
Offline support
- Queue coordinator
web/src/fila/useFila.ts - Offline queue
web/src/fila/banco.ts - Queue sender
web/src/fila/envio.ts - Background sync
web/src/sw.ts
REST API
- Transaction endpoints
backend/src/main/java/io/github/igorpacheco1/easyfinance/transacao/TransacaoController.java - Category endpoints
backend/src/main/java/io/github/igorpacheco1/easyfinance/categoria/CategoriaController.java - Summary endpoints
backend/src/main/java/io/github/igorpacheco1/easyfinance/transacao/ResumoController.java - Balance endpoints
backend/src/main/java/io/github/igorpacheco1/easyfinance/transacao/SaldoController.java
Finance domain
- Transaction rules
backend/src/main/java/io/github/igorpacheco1/easyfinance/transacao/TransacaoService.java - Transaction data
backend/src/main/java/io/github/igorpacheco1/easyfinance/transacao/TransacaoRepository.java - Category rules
backend/src/main/java/io/github/igorpacheco1/easyfinance/categoria/CategoriaService.java - Category data
backend/src/main/java/io/github/igorpacheco1/easyfinance/categoria/CategoriaRepository.java - Category model
backend/src/main/java/io/github/igorpacheco1/easyfinance/categoria/Categoria.java
API support
- Error responses
backend/src/main/java/io/github/igorpacheco1/easyfinance/shared/TratadorGlobalDeErros.java
Other components
- User
- PostgreSQL
Connections 26
- User → Record entry: records
- Record entry → HTTP client: submits via
web/src/paginas/LancarPagina.tsx - HTTP client → Transaction endpoints: HTTP JSON
- HTTP client → Category endpoints: HTTP JSON
- Month view → HTTP client: requests data
web/src/mes/useDadosDoMes.ts - Category summary → HTTP client: requests summary
web/src/mes/useResumoDoMes.ts - Transaction search → HTTP client: requests matches
web/src/busca/useBusca.ts - Category management → HTTP client: loads categories
web/src/categorias/useCategorias.ts - Month view → Date formatting: gets period
web/src/mes/useDadosDoMes.ts - Queue coordinator → Offline queue: reads and writes
web/src/fila/useFila.ts - Queue coordinator → Queue sender: invokes
web/src/fila/useFila.ts - Queue sender → Transaction endpoints: submits queued entries
- Background sync → Offline queue: uses queue
- Background sync → Transaction endpoints: background submission
- Transaction endpoints → Transaction rules: delegates
backend/src/main/java/io/github/igorpacheco1/easyfinance/transacao/TransacaoController.java - Category endpoints → Category rules: delegates
backend/src/main/java/io/github/igorpacheco1/easyfinance/categoria/CategoriaController.java - Summary endpoints → Transaction rules: requests summary
backend/src/main/java/io/github/igorpacheco1/easyfinance/transacao/ResumoController.java - Balance endpoints → Transaction rules: requests balance
backend/src/main/java/io/github/igorpacheco1/easyfinance/transacao/SaldoController.java - Transaction rules → Transaction data: queries and saves
backend/src/main/java/io/github/igorpacheco1/easyfinance/transacao/TransacaoService.java - Transaction rules → Category data: loads category
backend/src/main/java/io/github/igorpacheco1/easyfinance/transacao/TransacaoService.java - Category rules → Category data: queries and saves
backend/src/main/java/io/github/igorpacheco1/easyfinance/categoria/CategoriaService.java - Category data → Category model: maps entity
backend/src/main/java/io/github/igorpacheco1/easyfinance/categoria/CategoriaRepository.java - Transaction data → PostgreSQL: persists
- Category data → PostgreSQL: persists
- Transaction endpoints → Error responses: formats failures
- Category endpoints → Error responses: formats failures