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

3 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors