dluks82 / coders24-minerva-money

Projeto desenvolvido no módulo Programação Web II, do programa Santander Coders 2024.1 (Backend)
MIT License
1 stars 1 forks source link

Minerva Money

Java 17 Spring Boot PostgreSQL JWT Docker
Maven Swagger Flyway
API Status Demo Status

Sistema de gerenciamento financeiro pessoal desenvolvido durante o módulo Programação Web II no programa Santander Coders 2024.1.

📋 Sobre

O Minerva Money é uma aplicação de gerenciamento financeiro pessoal que permite aos usuários controlar suas finanças através do registro de transações, categorização de despesas e receitas, e acompanhamento de saldo. O sistema oferece recursos como múltiplas contas, categorias personalizáveis e relatórios financeiros.

💎 Front-end

Esta é a API REST do Minerva Money. Para a interface do usuário, confira nosso repositório front-end (opcional).

🌐 Live Demo

Tela de Dashboard Tela de Transações

💻 Requisitos

🛠️ Como Executar

Windows

  1. Clone o repositório:
git clone git@github.com:dluks82/coders24-minerva-money.git
cd coders24-minerva-money
  1. Inicie o banco de dados (requisito para executar a aplicação):
docker-compose up -d
  1. Execute a aplicação:
.\mvnw.cmd spring-boot:run

Linux/macOS

  1. Clone o repositório:
git clone git@github.com:dluks82/coders24-minerva-money.git
cd coders24-minerva-money
  1. Inicie o banco de dados (requisito para executar a aplicação):
docker compose up -d
  1. Execute a aplicação:
./mvnw spring-boot:run

Verificando a Instalação

  1. Verifique se o container do PostgreSQL está rodando:
docker ps
  1. A aplicação estará disponível em:
http://localhost:8081
  1. Acesse a documentação da API:
http://localhost:8081/swagger-ui.html

Resolvendo Problemas Comuns

  1. Porta 5433 em uso:
# Windows (PowerShell)
netstat -ano | findstr :5433
taskkill /PID [PID_NUMBER] /F

# Linux/macOS
lsof -i :5433
kill -9 [PID_NUMBER]
  1. Limpando containers e volumes Docker:
docker compose down -v
  1. Verificando logs:
docker compose logs postgres

🚀 Tecnologias

🏗️ Arquitetura

Diagrama de Classes

Diagrama de Classes

O diagrama de classes em formato PlantUML está disponível em diagrams/class-diagram.puml.

Modelo de Domínio

Categorias Padrão

⚙️ Regras de Negócio

  1. Contas

    • Usuário recebe uma conta "default" ao se registrar
    • Saldo é atualizado automaticamente com cada transação
    • Contas podem ter saldo negativo
  2. Categorias

    • Sistema possui 10 categorias padrão
    • Usuários podem criar categorias personalizadas
    • Categorias podem ser ativadas/desativadas
  3. Transações

    • Podem ser do tipo receita (INCOME) ou despesa (EXPENSE)
    • Atualizam o saldo da conta automaticamente
    • Suportam exclusão lógica (soft delete)

🔄 APIs

Diagrama de Classes

Autenticação

Contas

Categorias

Transações

Usuários

🧑‍💻 Equipe

Perfil do GitHub Diogo Perfil do GitHub Isaque Perfil do GitHub Rômulo Perfil do GitHub Samuel
Diogo Oliveira Isaque Menezes Rômulo Domingos Samuel Quaresma

💬 Agradecimentos

Gostaríamos de expressar nossa gratidão ao instrutor e colaboradores do Santander Coders 2024.1, cujo apoio foi essencial para a conclusão deste projeto.

📄 Licença

Este projeto está sob a licença especificada no arquivo LICENSE.