Aplicacao web para analise de financas pessoais com IA. O backend processa extratos (PDF/imagem), gera transações e agrega dados para o dashboard. O frontend exibe resumo, gastos por categoria e insights.
- Upload de extratos (PDF, JPG, PNG) com processamento assincrono.
- Dashboard com totais, categorias e insight gerado por IA.
- API REST com documentacao Swagger.
- Persistencia em Postgres e fila de tarefas com Redis + Celery.
- Backend: Django 5 + Django REST Framework
- Frontend: React + Vite + TypeScript
- Banco: Postgres
- Filas: Redis + Celery
- backend/: API Django, Celery e processamento de extratos
- frontend/: SPA React
- docker-compose.yml: ambiente completo (db, redis, backend, worker)
- Docker + Docker Compose
- Ou Python 3.11+ e Node 18+ para rodar localmente
docker compose up --buildServicos principais:
- Backend: http://localhost:8000
- Docs da API: http://localhost:8000/api/docs/
- Postgres: localhost:5432
- Redis: localhost:6379
cd backend
python -m venv .venv
# Ative o ambiente virtual
# Windows (PowerShell): .venv\Scripts\Activate.ps1
# Bash: source .venv/bin/activate
pip install -r requirements.txt
python manage.py migrate
python manage.py runservercd backend
celery -A core worker --loglevel=infocd frontend
npm install
npm run devO docker-compose.yml define valores padrao para desenvolvimento. Para customizar, crie um arquivo .env na raiz com, por exemplo:
DJANGO_SECRET_KEYDJANGO_DEBUGDJANGO_ALLOWED_HOSTSCELERY_BROKER_URLDB_ENGINE,DB_NAME,DB_USER,DB_PASSWORD,DB_HOST,DB_PORT
GET /api/dashboard/: resumo financeiro e insightPOST /api/statements/: upload de extratoGET /api/transactions/: lista de transacoesGET /api/docs/: Swagger UI
- As rotas da API usam autenticacao do Django/DRF.
- Arquivos enviados ficam em
backend/media/.
Consulte o arquivo LICENSE.txt.
- Perfil: https://github.com/diegoolinek
- Abra uma issue descrevendo o problema ou sugestao.
- Crie um fork e uma branch com um nome claro (ex.:
feature/nova-tela). - Mantenha o escopo pequeno e descreva o que mudou no PR.
- Garanta que o projeto roda localmente (backend + frontend).