Um aplicativo completo de gestão financeira pessoal desenvolvido com React e Laravel, projetado para ajudar usuários a controlar suas finanças, definir metas e alcançar a liberdade financeira.
- Visão Geral
- Funcionalidades
- Tecnologias Utilizadas
- Estrutura do Projeto
- Instalação e Configuração
- Uso
- API e Backend
- Banco de Dados
- Próximos Passos
- Contribuição
- Licença
O Finance Controller é uma aplicação web moderna que permite aos usuários:
- Gerenciar transações financeiras diárias
- Controlar orçamentos por categoria
- Acompanhar metas financeiras
- Visualizar relatórios detalhados
- Gerenciar múltiplas contas bancárias e cartões
- Exportar dados e relatórios
- Dashboard Interativo: Visão geral completa das finanças com gráficos e métricas
- Gestão de Transações: CRUD completo de transações com categorização
- Controle de Orçamentos: Definição e acompanhamento de orçamentos por categoria
- Metas Financeiras: Definição de metas com acompanhamento de progresso
- Relatórios: Análises detalhadas com gráficos interativos
- Gerenciamento de Contas: Controle de contas bancárias e cartões de crédito
- Configurações: Personalização completa da aplicação
- API RESTful: Endpoints bem documentados para todas as operações
- Autenticação JWT: Sistema seguro de autenticação
- Gestão de Usuários: Cadastro, perfil e preferências
- Categorização Inteligente: Sistema de categorias personalizáveis
- Exportação de Dados: Geração de relatórios em PDF e CSV
- Notificações: Sistema de alertas e lembretes
- React 18 - Biblioteca JavaScript para construção de interfaces
- Material-UI v5 - Componentes React seguindo as diretrizes do Material Design
- React Router v6 - Roteamento client-side
- Recharts - Biblioteca de gráficos e visualizações
- Axios - Cliente HTTP para consumir APIs
- React Hook Form - Gerenciamento de formulários
- Zustand - Gerenciamento de estado global
- TypeScript - Superset JavaScript com tipagem estática
- Laravel 10 - Framework PHP robusto e escalável
- MySQL/PostgreSQL - Banco de dados relacional
- Redis - Cache e armazenamento de sessões
- JWT - Autenticação baseada em tokens
- Laravel Sanctum - Autenticação de API
- PHP Unit - Testes automatizados
- Docker - Containerização da aplicação
- Nginx - Servidor web de alta performance
- Git - Controle de versão
- Vercel - Hospedagem do frontend
- Digital Ocean/AWS - Hospedagem do backend
finance-controller/
├── front/ # Frontend React
│ ├── public/ # Arquivos públicos
│ ├── src/
│ │ ├── components/ # Componentes React reutilizáveis
│ │ ├── layouts/ # Layouts principais do sistema
│ │ │ ├── dashboard/ # Dashboard financeiro
│ │ │ ├── transactions/ # Página de transações
│ │ │ ├── accounts/ # Gerenciamento de contas
│ │ │ ├── budgets/ # Controle de orçamentos
│ │ │ ├── goals/ # Metas financeiras
│ │ │ ├── reports/ # Relatórios e análises
│ │ │ └── settings/ # Configurações do sistema
│ │ ├── hooks/ # Hooks customizados
│ │ ├── utils/ # Funções utilitárias
│ │ ├── context/ # Context API
│ │ ├── api/ # Integração com backend
│ │ └── routes.js # Configuração de rotas
│ └── package.json
│
├── backend/ # Backend Laravel
│ ├── app/
│ │ ├── Http/
│ │ │ ├── Controllers/ # Controladores da API
│ │ │ ├── Middleware/ # Middlewares
│ │ │ └── Requests/ # Validações de requisição
│ │ ├── Models/ # Modelos Eloquent
│ │ ├── Services/ # Lógica de negócio
│ │ └── Jobs/ # Filas e jobs
│ ├── database/
│ │ ├── migrations/ # Migrações do banco
│ │ └── seeders/ # Dados iniciais
│ ├── routes/
│ │ ├── api.php # Rotas da API
│ │ └── web.php # Rotas web
│ ├── tests/ # Testes automatizados
│ └── composer.json
│
├── docker-compose.yml # Configuração Docker
├── .env.example # Exemplo de variáveis de ambiente
└── README.md
- Node.js (v18 ou superior)
- PHP (v8.1 ou superior)
- Composer
- MySQL ou PostgreSQL
- Docker (opcional)
# Clone o repositório
git clone https://github.com/seu-usuario/finance-controller.git
cd finance-controller/front
# Instale as dependências
npm install
# Configure as variáveis de ambiente
cp .env.example .env
# Inicie o servidor de desenvolvimento
npm start
# Acesse http://localhost:3000# Navegue até o diretório backend
cd finance-controller/backend
# Instale as dependências do PHP
composer install
# Copie o arquivo de configuração
cp .env.example .env
# Gere a chave da aplicação
php artisan key:generate
# Configure o banco de dados no arquivo .env
# DB_CONNECTION=mysql
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=finance_controller
# DB_USERNAME=seu_usuario
# DB_PASSWORD=sua_senha
# Execute as migrações
php artisan migrate
# Popule o banco com dados iniciais
php artisan db:seed
# Inicie o servidor
php artisan serve
# Acesse http://localhost:8000# Na raiz do projeto
docker-compose up -d
# Aguarde a inicialização dos containers
# Frontend: http://localhost:3000
# Backend: http://localhost:8000
# PHPMyAdmin: http://localhost:8080- Crie sua conta: Acesse a página de cadastro e crie sua conta
- Configure seu perfil: Adicione suas informações pessoais e preferências
- Adicione suas contas: Cadastre suas contas bancárias e cartões
- Defina categorias: Personalize as categorias de acordo com seu estilo de vida
- Registre transações: Comece a registrar suas receitas e despesas
- Estabeleça metas: Defina objetivos financeiros de curto, médio e longo prazo
- Acompanhe relatórios: Monitore seu progresso através dos relatórios detalhados
- Categorize tudo: Mantenha suas transações bem categorizadas para melhores análises
- Defina orçamentos realistas: Comece com metas alcançáveis e ajuste conforme necessário
- Revise regularmente: Acompanhe seus relatórios mensalmente para identificar padrões
- Use as metas: Estabeleça objetivos claros para manter a motivação
- Exporte dados: Faça backup regular dos seus dados através da exportação
POST /api/auth/register- Cadastro de novos usuáriosPOST /api/auth/login- Login de usuáriosPOST /api/auth/logout- Logout de usuáriosGET /api/auth/profile- Perfil do usuário autenticado
GET /api/transactions- Listar todas as transaçõesPOST /api/transactions- Criar nova transaçãoGET /api/transactions/{id}- Detalhes de uma transaçãoPUT /api/transactions/{id}- Atualizar transaçãoDELETE /api/transactions/{id}- Excluir transação
GET /api/categories- Listar categoriasPOST /api/categories- Criar nova categoriaPUT /api/categories/{id}- Atualizar categoriaDELETE /api/categories/{id}- Excluir categoria
GET /api/accounts- Listar contas bancáriasPOST /api/accounts- Criar nova contaPUT /api/accounts/{id}- Atualizar contaDELETE /api/accounts/{id}- Excluir conta
GET /api/budgets- Listar orçamentosPOST /api/budgets- Criar novo orçamentoPUT /api/budgets/{id}- Atualizar orçamentoDELETE /api/budgets/{id}- Excluir orçamento
GET /api/goals- Listar metas financeirasPOST /api/goals- Criar nova metaPUT /api/goals/{id}- Atualizar metaDELETE /api/goals/{id}- Excluir meta
A documentação completa da API está disponível em: http://localhost:8000/api/documentation
users- Informações dos usuáriospassword_resets- Recuperação de senhapersonal_access_tokens- Tokens de API
accounts- Contas bancárias e cartõescategories- Categorias de transaçõestransactions- Registro de todas as transaçõesbudgets- Orçamentos mensaisgoals- Metas financeirasgoal_progress- Progresso das metas
monthly_summaries- Resumos mensaiscategory_summaries- Resumos por categoriaaccount_balances- Saldos históricos
- Usuário → Transações (1:N)
- Usuário → Contas (1:N)
- Usuário → Categorias (1:N)
- Usuário → Orçamentos (1:N)
- Usuário → Metas (1:N)
- Transação → Categoria (N:1)
- Transação → Conta (N:1)
- Orçamento → Categoria (N:1)
- Inteligência Artificial: Previsões e recomendações financeiras
- Integração Bancária: Conexão direta com APIs bancárias
- Investimentos: Controle de carteira e acompanhamento de rendimentos
- Planejamento Tributário: Cálculo e otimização de impostos
- App Mobile: Versão mobile nativa (React Native)
- Notificações Inteligentes: Alertas personalizados baseados em padrões
- Compartilhamento: Contas compartilhadas para famílias
- Moedas Internacionais: Suporte a múltiplas moedas
- Importação de Dados: Importação de extratos bancários
- Exportação Fiscal: Geração de relatórios para declaração de imposto
- Testes Automatizados: Cobertura completa de testes
- Performance: Otimização de queries e cache
- Segurança: Auditoria de segurança completa
- Monitoramento: Sistema de logs e monitoramento
- CI/CD: Pipeline completo de integração contínua
- Documentação: Documentação técnica completa
Contribuições são sempre bem-vindas! Para contribuir:
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
- Mantenha o código limpo e bem documentado
- Siga os padrões de código existentes
- Adicione testes para novas funcionalidades
- Atualize a documentação conforme necessário
- Seja respeitoso e construtivo nos comentários
Encontrou um bug? Por favor, abra uma issue com:
- Descrição detalhada do problema
- Passos para reproduzir
- Comportamento esperado vs comportamento atual
- Screenshots (se aplicável)
- Informações do ambiente (sistema operacional, navegador, versões)
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
- Victor Hugo - Desenvolvedor Fullstack - GitHub
- Aos contribuidores do Material-UI por fornecer componentes incríveis
- À comunidade Laravel por tornar o desenvolvimento backend mais fácil
- Aos nossos beta testers por feedback valioso
- Aos criadores de bibliotecas open source que utilizamos
⭐ Se este projeto te ajudou, considere dar uma estrela no GitHub! ⭐
Última atualização: Novembro 2025