💰 Projeto: Backend de Gerenciamento Financeiro Pessoal / Project: Personal Financial Management Backend
- 🚀 Visão Geral / Overview
- 🌟 Diferenciais / Highlights
- 🛠️ Tecnologias / Technologies
- 📁 Estrutura do Projeto / Project Structure
- ⚙️ Funcionalidades / Functionalities
- 🚀 Como Executar / How to Run
Este backend é parte de um sistema de gestão financeira pessoal compartilhada, ideal para casais, colegas ou grupos que dividem despesas. Ele oferece uma estrutura segura e flexível para registrar receitas, despesas, visualizar dados individuais e consolidados, e gerar análises financeiras completas.
This backend powers a shared personal finance management system, ideal for couples, roommates, or groups who manage expenses together. It provides a secure and flexible structure to log income, expenses, view individual and consolidated data, and generate full financial insights.
- ✅ Conta compartilhada entre múltiplos usuários
- ✅ Visualização separada ou consolidada de transações
- ✅ Segurança com autenticação baseada em JWT
- ✅ Estrutura preparada para extensões analíticas e dashboards
- ✅ CRUD completo para transações financeiras
- ✅ Shared account between multiple users
- ✅ Separate or consolidated transaction views
- ✅ Security with JWT-based authentication
- ✅ Structure ready for analytical extensions and dashboards
- ✅ Full CRUD for financial transactions
- Java 17+ – Versão LTS da linguagem
- Spring Boot 3.3.x – Desenvolvimento rápido e simplificado
- Spring Web – Criação de APIs RESTful
- Spring Data MongoDB – Persistência com esquema flexível
- Spring Security – Autenticação e autorização
- Lombok – Redução de boilerplate
- Java 17+ – LTS version of the language
- Spring Boot 3.3.x – Rapid and simplified development
- Spring Web – Creation of RESTful APIs
- Spring Data MongoDB – Schema-flexible persistence
- Spring Security – Authentication and authorization
- Lombok – Reduces boilerplate code
- MongoDB – Banco NoSQL orientado a documentos / Document-oriented NoSQL database
- Maven – Gerenciamento de dependências / Dependency management
- Spring Boot DevTools – Recarga automática no desenvolvimento / Auto-reload during development
- Swagger / OpenAPI – Documentação e testes da API / API documentation and testing
📁 Financial Tracker
├── .mvn
│ └── wrapper
│ └── maven-wrapper.properties
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com.magodev.financialtracker
│ │ │ └── FinancialTrackerApplication.java
│ │ └── resources
│ │ ├── application.properties
│ │ ├── static/
│ │ └── templates/
│ └── test
│ └── java/com.magodev.financialtracker
│ └── FinancialTrackerApplicationTests.java
├── .gitignore
├── pom.xml
└── README.md
Utiliza JWT (JSON Web Token). Cada usuário possui login/senha e acessa seus dados por meio de um token.
- Login:
POST /api/auth/login
→ Retorna um JWT válido - Proteção:
Endpoints como/api/transactions
exigem token JWT no cabeçalhoAuthorization
Uses JWT (JSON Web Token). Each user logs in with credentials and accesses their data using a token.
- Login:
POST /api/auth/login
→ Returns a valid JWT - Protection:
Endpoints like/api/transactions
require a JWT token in theAuthorization
header
- Usuários: armazenados na coleção
users
- Conta Compartilhada: única conta em
accounts
, vinculada a 2 ou mais usuários - Transações: vinculadas ao
userId
de quem registrou e aoaccountId
da conta
- Users: stored in the
users
collection - Shared Account: one account in
accounts
, linked to 2 or more users - Transactions: linked to the
userId
who created it and the couple’saccountId
GET /api/transactions/individual
– Transações do usuário logadoGET /api/transactions/shared
– Transações consolidadas da contaPOST /api/transactions
– Adiciona transaçãoPUT /api/transactions/{id}
– Atualiza transaçãoDELETE /api/transactions/{id}
– Remove transação
GET /api/transactions/individual
– Transactions by the logged-in userGET /api/transactions/shared
– All transactions in the shared accountPOST /api/transactions
– Add new transactionPUT /api/transactions/{id}
– Update transactionDELETE /api/transactions/{id}
– Delete transaction
-
Pré-requisitos:
- JDK 17 ou superior
- Maven instalado
- MongoDB local ou em nuvem (ex: Atlas)
-
Configuração:
- Abra o projeto em sua IDE
- Edite o arquivo
src/main/resources/application.properties
com a URI do MongoDB
-
Execução:
- Rode a classe
FinancialTrackerApplication.java
- Rode a classe
-
Prerequisites:
- JDK 17 or higher
- Maven installed
- MongoDB (local or cloud, e.g., Atlas)
-
Configuration:
- Open the project in your IDE
- Edit
src/main/resources/application.properties
with your MongoDB URI
-
Run:
- Run the
FinancialTrackerApplication.java
class
- Run the