Sistema Web de controle financeiro pessoal desenvolvido em Laravel, permitindo o gerenciamento de receitas, despesas, categorias e acompanhamento financeiro por meio de dashboard com gráficos.
Um Sistema Financeiro para gerenciamento de receitas, despesas, categorias e saldo por usuário autenticado, simples prático e rápido !
O Meu Saldo Certo é uma aplicação web para controle financeiro pessoal. O sistema permite registrar movimentações financeiras, classificar receitas e despesas por categorias, acompanhar o saldo atual e visualizar dados consolidados em um dashboard.
O projeto foi desenvolvido como aplicação de portfólio profissional, com foco em organização de código, uso adequado dos recursos do Laravel, separação de responsabilidades e preparação para execução em ambiente Docker.
- Cadastro e autenticação de usuários com Laravel Breeze.
- Login e logout.
- Dashboard financeiro.
- Visualização de receitas, despesas e saldo atual.
- Gráficos financeiros utilizando Chart.js.
- CRUD de receitas.
- CRUD de despesas.
- Cadastro de categorias associadas às movimentações.
- Filtros por período.
- Paginação.
- Validação com Form Requests.
- Autorização com Policies.
- Separação de dados por usuário autenticado.
- Modelagem de banco de dados relacional.
- PHP 8.3
- Laravel 12
- MySQL 8
- Docker
- Docker Compose
- Apache
- Composer
- Node.js
- Vite
- Blade
- Tailwind CSS
- JavaScript
- Chart.js
O projeto utiliza a arquitetura MVC do Laravel, separando responsabilidades entre rotas, controllers, models, views, requests, policies e migrations.
app/Http/Controllers: controllers responsáveis pelos fluxos web.app/Http/Requests: validações centralizadas com Form Requests.app/Models: entidades principais da aplicação.app/Policies: regras de autorização por usuário.database/migrations: estrutura relacional do banco de dados.resources/views: telas Blade da aplicação.resources/jseresources/css: assets compilados pelo Vite.routes/web.php: definição das rotas web protegidas por autenticação.
- Docker
- Docker Compose
- Git
git clone https://github.com/NatanLuz/meu-saldo-certo.git
cd meu-saldo-certoCopie o arquivo de exemplo:
cp .env.example .envNo Windows PowerShell:
Copy-Item .env.example .envPara executar com Docker Compose, configure o banco usando o nome do serviço MySQL:
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=meu_saldo_certo
DB_USERNAME=meu_saldo_certo
DB_PASSWORD=secretTambém é recomendado manter:
SESSION_DRIVER=database
CACHE_STORE=database
QUEUE_CONNECTION=databasedocker compose up -d --buildEsse comando cria e inicia:
- container Laravel + Apache + PHP;
- container MySQL 8;
- volume persistente para o banco;
- rede interna para comunicação entre aplicação e banco.
docker compose exec app php artisan migratedocker compose exec app php artisan storage:linkO cadastro pode ser feito pela própria tela da aplicação.
Caso seja necessário criar um usuário de teste pelo terminal, o projeto possui o comando:
docker compose exec app php artisan make:test-userhttp://localhost:8000
Principais variáveis utilizadas para conexão com o MySQL:
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=meu_saldo_certo
DB_USERNAME=meu_saldo_certo
DB_PASSWORD=secretDescrição:
DB_CONNECTION: driver de banco utilizado pelo Laravel.DB_HOST: host do banco. No Docker Compose, deve ser o nome do serviçomysql.DB_PORT: porta interna do MySQL no container.DB_DATABASE: nome do banco de dados da aplicação.DB_USERNAME: usuário utilizado pela aplicação.DB_PASSWORD: senha do usuário da aplicação.
Em produção, esses valores devem ser definidos no provedor de hospedagem, sem versionar credenciais reais no repositório.
- Autenticação implementada com Laravel Breeze.
- Rotas principais protegidas por autenticação.
- Validação de entrada centralizada com Form Requests.
- Policies utilizadas para autorização de acesso às transações.
- Separação de dados por usuário autenticado.
- Uso de variáveis de ambiente para configurações sensíveis.
- Senhas armazenadas com hash pelo mecanismo padrão do Laravel.
- Views Blade com escape automático de saída.
- Banco de dados relacional com chaves estrangeiras e migrations versionadas.
- Ambiente Docker separado em containers de aplicação e banco.
O projeto está preparado para execução de testes automatizados com PHPUnit.
Para executar a suíte de testes:
php artisan testEm ambiente Docker:
docker compose exec app php artisan testv1.1.0
Mudanças desta versão:
- Dockerização completa.
- Configuração com Docker Compose.
- MySQL containerizado.
- Preparação para ambiente de produção.
- Melhorias na configuração Laravel para uso com MySQL.
Link: https://meu-saldo-certo-9o9r.onrender.com
Natan Da Luz
-
LinkedIn: linkedin.com/in/natandaluz
-
Portfólio: portfolionatan.vercel.app
-
E-mail: natandaluz01@gmail.com
Este projeto está licenciado sob a licença MIT.





