Skip to content
← Back to projects

Personal Fin

The skeleton application for the Laravel framework.

💰 Personal Finance Manager

Sistema de gerenciamento de finanças pessoais — mobile-first, multi-perfil e preparado para escala.

Laravel 12 Livewire 3 Tailwind CSS 3 PostgreSQL Docker PHP 8.2+


#📋 Sobre o Projeto

O Personal Finance Manager (PFM) é uma aplicação web focada em controle financeiro pessoal, construída com foco em usabilidade mobile-first e experiência visual moderna (Glassmorphism + Dark Mode).

O sistema permite gerenciar receitas, despesas, cartões, contas, metas, limites de gastos, investimentos e empréstimos — tudo com suporte a múltiplos perfis financeiros por usuário.


#✨ Funcionalidades

Módulo Descrição Status
🔐 Autenticação Registro, login, recuperação de senha (Breeze) ✅ Concluído
📊 Dashboard Saldo, receitas, despesas, projeções do mês, Quick Actions ✅ Concluído
🏦 Contas CRUD de contas bancárias com saldo em tempo real ✅ Concluído
💳 Cartões Gestão de cartões, faturas, limites e vencimentos ✅ Concluído
💸 Transações Receitas, despesas e transferências (único, recorrente, parcelado) ✅ Concluído
🎯 Metas Definição de objetivos com barra de progresso ✅ Concluído
🚦 Limites Alertas e bloqueios por categoria de gasto ✅ Concluído
📈 Investimentos Registro e acompanhamento de rentabilidade ✅ Concluído
🤝 Empréstimos Controle de parcelas e taxas ✅ Concluído
📉 Relatórios Análises por categoria, período, conta e cartão ✅ Concluído
🏷️ Categorias Gerenciador de categorias e subcategorias ✅ Concluído
🌙 Tema Dark/Light mode com toggle ✅ Concluído
🧑‍💻 Área Dev Catálogo de APIs e ferramentas de desenvolvimento ✅ Concluído

#🧱 Stack Técnica

#Backend

  • Laravel 12 — Framework PHP com arquitetura MVC + Services + Actions
  • Laravel Breeze — Autenticação leve e customizável
  • Livewire 3 — Componentes reativos full-stack sem JavaScript
  • PostgreSQL — Banco relacional com UUIDs, soft deletes e índices otimizados

#Frontend

  • Tailwind CSS — Utility-first CSS framework
  • Alpine.js — Reatividade leve no browser
  • Design System — Glassmorphism + Dark Mode, responsivo mobile-first

#Infra

  • Docker + Docker Compose — Ambiente local padronizado e reproduzível

#🗂️ Estrutura do Projeto

personal_fin/
├── app/
│   ├── Http/Controllers/     # Controllers REST (14 controllers)
│   ├── Livewire/             # Componentes Livewire (Dashboard, CategoryManager, ThemeToggle)
│   ├── Models/               # Eloquent Models (12 modelos)
│   └── Providers/
├── database/
│   ├── migrations/           # 17 migrations
│   ├── factories/
│   └── seeders/
├── resources/
│   ├── views/                # Blade templates + componentes
│   └── css/ js/
├── routes/
│   ├── web.php               # Rotas principais
│   └── auth.php              # Rotas de autenticação
├── docs/
│   ├── PRD.md                # Product Requirements Document
│   └── schema.md             # Modelagem do banco
└── .aidev/                   # Configuração de agentes AI Dev

#🚀 Instalação e Execução

#Pré-requisitos

  • Docker e Docker Compose instalados
  • PHP 8.2+ (para execução sem Docker)
  • Composer

#Com Docker

# Clone o repositório
git clone https://github.com/nandinhos/personal_fin.git
cd personal_fin

# Copie o arquivo de ambiente
cp .env.example .env

# Suba os containers
docker compose up -d

# Instale as dependências
docker compose exec app composer install
docker compose exec app npm install

# Gere a chave da aplicação
docker compose exec app php artisan key:generate

# Execute as migrations
docker compose exec app php artisan migrate --seed

#Sem Docker

git clone https://github.com/nandinhos/personal_fin.git
cd personal_fin

cp .env.example .env

composer install
npm install

php artisan key:generate
php artisan migrate --seed

php artisan serve
npm run dev

A aplicação estará disponível em http://localhost:8000.


#🗺️ Roadmap

Sprint 01  ██████████  Fundamentos & Autenticação        ✅ Concluído
Sprint 02  ██████████  Dashboard MVP                     ✅ Concluído
Sprint 03  ██████████  Contas & Cartões                  ✅ Concluído
Sprint 04  ██████████  Transações Core                   ✅ Concluído
Sprint 05  ██████████  Transações Avançadas              ✅ Concluído
Sprint 06  ██████████  Metas & Limites                   ✅ Concluído
Sprint 07  ██████████  Relatórios & Insights             ✅ Concluído
Sprint 08  ██████████  Investimentos & Empréstimos       ✅ Concluído
Sprint 09  ██████████  Perfil & Configurações            ✅ Concluído

#🗄️ Modelo de Dados (Macro)

users
  └── profiles (1:N)
        ├── accounts (1:N)
        ├── cards (1:N)
        ├── transactions (1:N)
        │     └── categories / subcategories
        ├── goals (1:N)
        ├── limits (1:N)
        ├── investments (1:N)
        └── loans (1:N)

#🤝 Contribuindo

Este projeto está em desenvolvimento ativo. Contribuições são bem-vindas.

# Crie uma branch para sua feature
git checkout -b feat/nome-da-feature

# Commit seguindo o padrão Conventional Commits
git commit -m "feat(modulo): descricao da mudanca"

# Abra um Pull Request

Padrão de commits:

Tipo Uso
feat Nova funcionalidade
fix Correção de bug
refactor Refatoração sem mudança de comportamento
test Adição ou ajuste de testes
docs Documentação
chore Tarefas de manutenção

#📄 Licença

Distribuído sob a licença MIT. Veja LICENSE para mais informações.


Feito com ❤️ por Nando Dev

New version available.