Skip to content

devhenrico/econoapp

Repository files navigation

🚀 EconoApp

NestJS TypeScript Google Gemini Prisma PostgreSQL Docker

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.


✨ Funcionalidades Principais

  • 🤖 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.

🛠️ Tecnologias Utilizadas


📁 Estrutura do Projeto

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

🚀 Como Executar

Pré-requisitos

  • Node.js (v18 ou superior)
  • Docker e Docker Compose
  • Uma chave de API do Google Gemini
  • Token de Bot do Telegram (via BotFather)

Instalação

  1. Clone o repositório:

    git clone https://github.com/devhenrico/econoapp.git
    cd econoapp
  2. Instale as dependências:

    npm install
  3. Configure as variáveis de ambiente: Crie um arquivo .env na raiz baseado no .env.example.

  4. Suba o PostgreSQL local:

    docker compose up -d postgres
  5. Configure o banco de dados:

    npx prisma migrate dev
    npx prisma generate
  6. Inicie o servidor de desenvolvimento:

    npm run dev

Docker

Para subir o ambiente completo de produção (PostgreSQL + backend) com Docker:

docker compose up -d --build

O 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

📋 Comandos do Bot

  • /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.

🧪 Testes

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:coverage

📄 Licença

Este projeto está sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes.

About

Gestão financeira para vendedores de marketplace via bot do Telegram, com extração automática de dados por IA

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors