Skip to content

Repository files navigation

MyFinances API

API de gerenciamento financeiro pessoal do MyFinances, construída com NestJS, Prisma e MongoDB. Centraliza os dados, as regras financeiras e a autenticação consumidos pelo frontend.

Versão de referência: v2.2.2. Consulte o histórico de versões para conhecer as mudanças de cada release.

Funcionalidades

  • Autenticação e usuário: cadastro, login com JWT, atualização de perfil e senha.
  • Transações: receitas e despesas, edição, remoção, busca com cursor, totais por filtros e saldo acumulado.
  • Categorias e regras: catálogo personalizado, arquivamento e sugestões de classificação por descrição.
  • Importação e exportação: CSV/OFX com prévia e revisão de duplicatas; exportação assíncrona em PDF/CSV.
  • Dashboard e comparativos: resumo mensal, indicadores e análise de receitas, despesas e saldo.
  • Orçamentos: limites mensais e acompanhamento de gastos por categoria.
  • Calendário financeiro: receitas recorrentes, compromissos previstos e projeção diária de saldo.
  • Wishlist: metas com aportes e retiradas individuais, histórico e conclusão de compras com uma única despesa.
  • Cartões de crédito: limite, compras parceladas, faturas, pagamento integral e arquivamento de cartões quitados.
  • Despesas fixas e notificações: recorrências, pagamentos vinculados a transações e lembretes de vencimento.

O escopo atual reúne os comportamentos disponíveis e seus limites.

Documentação

Comece pelo índice da documentação. As referências principais são:

Referência Conteúdo
Escopo atual Funcionalidades implementadas e regras gerais
Rotas da API Endpoints, entradas e respostas
Modelos e banco Persistência, relacionamentos e índices
Arquitetura Organização dos módulos e regras de integração
Histórico de versões Mudanças por release

Os guias de domínio, implantação e os registros históricos estão organizados no índice.

Tecnologias

  • NestJS e TypeScript.
  • Prisma e MongoDB com replica set.
  • Zod para validação e JWT para autenticação.
  • AES-256-GCM para proteção dos dados financeiros sensíveis.
  • BullMQ e Redis para processamento de exportações.
  • PDFKit para relatórios PDF; Jest para testes.

Instalação e execução

Pré-requisitos: Node.js com npm, MongoDB com replica set e Redis. O replica set é necessário para as operações financeiras atômicas.

  1. Clone o repositório e instale as dependências:

    git clone https://github.com/Lucalopezz/MyFinances_API.git
    cd MyFinances_API
    npm install
  2. Copie o exemplo de configuração:

    cp .env.example .env

    Configure DATABASE_URL, as variáveis JWT, FINANCIAL_DATA_ENCRYPTION_KEY e REDIS_URL. O exemplo também contém a porta e as opções de exportação. A documentação de criptografia explica a geração e a preservação da chave financeira.

  3. Gere o Prisma Client e sincronize o schema no banco configurado:

    npx prisma generate
    npx prisma db push

    Para bancos existentes, faça backup e siga os guias de implantação por domínio antes de sincronizar coleções e índices. O MongoDB não usa Prisma Migrate.

  4. Inicie a API:

    npm run start:dev

    A URL local padrão é http://localhost:3001. GET /health é público e informa a disponibilidade do processo.

Comandos

Comando Uso
npm run start:dev Desenvolvimento com recarga
npm run build Build de produção
npm run start:prod Execução da build
npm test -- --runInBand Suítes de testes; integrações dependem de configuração própria
npm run test:calendar:integration Integração do calendário em banco descartável
npm run test:imports:integration Integração da importação em banco descartável

As variáveis e os limites dos testes de integração estão nos respectivos guias de domínio.

Estrutura

├── src/
│   ├── common/       # Autorização, validação e infraestrutura compartilhada
│   ├── modules/      # Módulos de domínio e composição da aplicação
│   ├── prisma/       # Acesso ao MongoDB via Prisma
│   └── main.ts       # Entrada da API NestJS
├── prisma/           # Schema do banco
├── docs/             # Referências técnicas, guias e histórico
├── scripts/          # Utilitários de desenvolvimento
├── test/             # Configuração e testes E2E
└── package.json

About

Gerencie suas finanças de forma eficiente com a MyFinances_API, uma solução robusta para controle de receitas, despesas, orçamentos e relatórios financeiros. Desenvolvida com NestJS e MongoDB, esta API oferece endpoints seguros e escaláveis para ajudar usuários a monitorar seu fluxo de caixa, definir metas e tomar decisões financeiras.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages