Skip to content

A secure and flexible backend for managing shared personal finances, supporting multi-user accounts, JWT-based authentication, and comprehensive transaction management. Built with Java, Spring Boot, and MongoDB.

Notifications You must be signed in to change notification settings

ramoncbarbosa/Financial_Tracker_Backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java 17 Spring Boot Spring Security MongoDB Maven Lombok JWT


💰 Projeto: Backend de Gerenciamento Financeiro Pessoal / Project: Personal Financial Management Backend


📌 Índice / Table of Contents


🚀 Visão Geral / Overview

🇧🇷 Português

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.

🇺🇸 English

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.


🌟 Diferenciais

  • ✅ 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

🌟 Highlights

  • ✅ 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

🛠️ Tecnologias / Technologies

🇧🇷 Backend (Java)

  • 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

🇺🇸 Backend (Java)

  • 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

🗄️ Banco de Dados / Database

  • MongoDB – Banco NoSQL orientado a documentos / Document-oriented NoSQL database

⚙️ Ferramentas de Desenvolvimento / Development Tools

  • 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

📁 Estrutura do Projeto / Project Structure

📁 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

⚙️ Funcionalidades / Functionalities

🔐 Autenticação e Autorização / Authentication & Authorization

🇧🇷

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çalho Authorization

🇺🇸

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 the Authorization header

🧠 Modelagem de Dados / Data Modeling

🇧🇷

  • 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 ao accountId 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’s accountId

📲 Endpoints da API / API Endpoints

🇧🇷 Exemplos de Endpoints

  • GET /api/transactions/individual – Transações do usuário logado
  • GET /api/transactions/shared – Transações consolidadas da conta
  • POST /api/transactions – Adiciona transação
  • PUT /api/transactions/{id} – Atualiza transação
  • DELETE /api/transactions/{id} – Remove transação

🇺🇸 Example Endpoints

  • GET /api/transactions/individual – Transactions by the logged-in user
  • GET /api/transactions/shared – All transactions in the shared account
  • POST /api/transactions – Add new transaction
  • PUT /api/transactions/{id} – Update transaction
  • DELETE /api/transactions/{id} – Delete transaction

🚀 Como Executar / How to Run

🇧🇷 Português

  1. Pré-requisitos:

    • JDK 17 ou superior
    • Maven instalado
    • MongoDB local ou em nuvem (ex: Atlas)
  2. Configuração:

    • Abra o projeto em sua IDE
    • Edite o arquivo src/main/resources/application.properties com a URI do MongoDB
  3. Execução:

    • Rode a classe FinancialTrackerApplication.java

🇺🇸 English

  1. Prerequisites:

    • JDK 17 or higher
    • Maven installed
    • MongoDB (local or cloud, e.g., Atlas)
  2. Configuration:

    • Open the project in your IDE
    • Edit src/main/resources/application.properties with your MongoDB URI
  3. Run:

    • Run the FinancialTrackerApplication.java class

About

A secure and flexible backend for managing shared personal finances, supporting multi-user accounts, JWT-based authentication, and comprehensive transaction management. Built with Java, Spring Boot, and MongoDB.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages