O EconoApp é uma solução inteligente de gestão financeira pessoal e empresarial, permitindo que usuários registrem e acompanhem suas finanças diretamente através do Telegram.
Utilizando Inteligência Artificial avançada (Google Gemini), o sistema é capaz de entender mensagens de voz e texto em linguagem natural para extrair dados financeiros automaticamente.
- 🤖 IA com Google Gemini: Extração automática de valor, descrição, produto e canal de vendas a partir de mensagens naturais.
- 📱 Exclusivo Telegram: Integração completa e otimizada com bot do Telegram.
- 💹 Gestão de Canais de Venda: Configuração de taxas de comissão por canal (ex: Shopee, Mercado Livre) com cálculo automático de valor líquido.
- 📊 Relatórios Visuais: Geração de gráficos de pizza e resumos detalhados de entradas, saídas e categorias.
- 📂 Categorização Dinâmica: Criação automática de categorias com cores persistentes para melhor visualização.
- ⚙️ Configurações via Bot: Edição de perfil, gestão de canais e taxas diretamente pelo chat.
- Framework: NestJS
- Linguagem: TypeScript
- ORM: Prisma
- IA: Google Gemini (AI)
- Banco de Dados: PostgreSQL
- Gráficos: Chart.js (via
chartjs-node-canvas) - Documentação da API: Swagger & Scalar
- Segurança: JWT, Bcrypt & Helmet
- Logs: Pino
- Testes: Vitest
- Validação: Zod & Class-validator
src/
├── common/ # Filtros, Pipes e Decorators compartilhados
├── config/ # Configurações de variáveis de ambiente e App
├── domain/ # Regras de negócio e lógica de domínio (finance)
├── modules/ # Módulos do NestJS (Telegram, Auth, etc.)
│ ├── auth/ # Autenticação e Gestão de Usuários
│ ├── categories/ # Gestão de Categorias e Cores
│ ├── channels/ # Gestão de Canais de Venda e Taxas
│ ├── dashboard/ # Lógica de relatórios e gráficos
│ ├── health/ # Monitoramento e integridade do sistema
│ ├── telegram/ # Bot Telegram: Scenes, Keyboards e Handlers
│ └── transactions/# Registro e gestão de movimentações financeiras
├── services/ # Integrações externas (AI/Gemini)
├── utils/ # Funções utilitárias e ajudantes
└── main.ts # Inicialização do servidor NestJS
- Node.js (v18 ou superior)
- Docker e Docker Compose
- Uma chave de API do Google Gemini
- Token de Bot do Telegram (via BotFather)
-
Clone o repositório:
git clone https://github.com/devhenrico/econoapp.git cd econoapp -
Instale as dependências:
npm install
-
Configure as variáveis de ambiente: Crie um arquivo
.envna raiz baseado no.env.example. -
Suba o PostgreSQL local:
docker compose up -d postgres
-
Configure o banco de dados:
npx prisma migrate dev npx prisma generate
-
Inicie o servidor de desenvolvimento:
npm run dev
Para subir o ambiente completo de produção (PostgreSQL + backend) com Docker:
docker compose up -d --buildO serviço api aguarda o PostgreSQL ficar saudável, executa prisma migrate deploy e inicia com node dist/main.js.
Para acompanhar os logs:
docker compose logs -f api/start- Inicia o bot e apresenta o menu principal./saldo- Exibe o saldo líquido acumulado no mês./resumo- Gera um relatório visual com gráfico de categorias./canais- Gerencia canais de venda e suas respectivas taxas./configuracoes- Atalho para edição de perfil e preferências./ajuda- Lista todos os comandos disponíveis.
O projeto utiliza Vitest para testes unitários e de integração.
# Rodar todos os testes
npm run test
# Modo watch
npm run test:watch
# Cobertura
npm run test:coverageEste projeto está sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes.