Sistema completo de gerenciamento financeiro pessoal desenvolvido com Django REST Framework e React, containerizado com Docker.
- Python 3.11
- Django 5.0
- Django REST Framework
- PostgreSQL 15
- Docker & Docker Compose
- React 18
- Vite
- Tailwind CSS
- Recharts (gráficos)
- Lucide React (ícones)
- Axios
- ✅ Autenticação completa (Login, Registro, Logout)
- ✅ CRUD de Transações (Receitas e Despesas)
- ✅ CRUD de Categorias personalizadas
- ✅ Dashboard com gráficos interativos
- ✅ Sistema de Insights Financeiros
- ✅ Design responsivo (Mobile-first)
- ✅ Dados de teste incluídos
- Docker
- Docker Compose
git clone <seu-repositorio>
cd fincontroldocker-compose up --buildAguarde os containers iniciarem. O processo inclui:
- Criação do banco PostgreSQL
- Migrações do Django
- Seed de dados (usuário de teste + categorias + transações)
- Inicialização do backend (porta 8000)
- Inicialização do frontend (porta 5173)
Frontend: http://localhost:5173
Credenciais de teste:
- Usuário:
teste - Senha:
teste123
Backend Admin: http://localhost:8000/admin
(Crie um superusuário com docker-compose exec backend python manage.py createsuperuser)
fincontrol/
├── backend/
│ ├── api/
│ │ ├── models.py # Models (Category, Transaction)
│ │ ├── serializers.py # Serializers DRF
│ │ ├── views.py # ViewSets e endpoints
│ │ ├── urls.py # Rotas da API
│ │ ├── utils/
│ │ │ └── insights.py # Engine de insights financeiros
│ │ └── management/
│ │ └── commands/
│ │ └── seed_data.py # Comando de seed
│ └── fincontrol/
│ ├── settings.py # Configurações Django
│ └── urls.py # URLs principais
├── frontend/
│ └── src/
│ ├── components/
│ │ ├── Sidebar.jsx # Navegação lateral
│ │ ├── Dashboard.jsx # Dashboard com gráficos
│ │ ├── Transactions.jsx # Lista de transações
│ │ └── AddTransaction.jsx # Modal de criação
│ ├── api/
│ │ └── api.js # Cliente Axios
│ └── App.jsx # Componente principal
└── docker-compose.yml
POST /api/auth/login/- LoginPOST /api/auth/register/- RegistroPOST /api/auth/logout/- Logout
GET /api/categories/- Listar categoriasPOST /api/categories/- Criar categoriaPUT /api/categories/{id}/- Atualizar categoriaDELETE /api/categories/{id}/- Deletar categoria
GET /api/transactions/- Listar transaçõesPOST /api/transactions/- Criar transaçãoPUT /api/transactions/{id}/- Atualizar transaçãoDELETE /api/transactions/{id}/- Deletar transaçãoGET /api/transactions/summary/- Resumo financeiroGET /api/transactions/by_category/- Agrupar por categoria
GET /api/insights/- Obter dicas financeiras
O sistema utiliza uma paleta de cores clean e profissional:
- Verde (Primary): Receitas e ações positivas
- Vermelho (Danger): Despesas e ações de exclusão
- Cinza: Backgrounds e textos neutros
- Branco: Cards e elementos principais
docker-compose exec backend python manage.py seed_datadocker-compose exec backend python manage.py shelldocker-compose logs -f backend
docker-compose logs -f frontenddocker-compose downdocker-compose down -v- Cards de resumo (Saldo, Receitas, Despesas)
- Gráfico de área mostrando evolução do saldo
- Gráfico de pizza com distribuição de gastos por categoria
- Seção de insights financeiros personalizados
Analisa suas transações e fornece dicas como:
- Comparação de gastos entre meses
- Alertas de categorias com gastos elevados
- Sugestões de economia
- Taxa de poupança
- Tabela responsiva com todas as transações
- Filtros por tipo, categoria e data
- Modal intuitivo para adicionar novas transações
- Exclusão rápida de transações
- Token Authentication (DRF)
- Validação de dados no backend
- Proteção CSRF
- CORS configurado
- Senhas hasheadas (Django)
- Layout adaptável para mobile, tablet e desktop
- Sidebar transformada em menu hambúrguer no mobile
- Tabelas com scroll horizontal
- Design mobile-first
- Fork o projeto
- Crie uma branch (
git checkout -b feature/nova-funcionalidade) - Commit suas mudanças (
git commit -am 'Adiciona nova funcionalidade') - Push para a branch (
git push origin feature/nova-funcionalidade) - Abra um Pull Request
Kauã Patricki de Azevedo Rosa & Enzo Eduardo Allebrand
FinControl - Controle suas finanças com inteligência! 💰📊