Backend For Frontend (BFF) para sistema de gerenciamento de consórcios, desenvolvido com NestJS e GraphQL. Este projeto serve como camada intermediária entre o frontend e os serviços de backend, fornecendo uma API GraphQL unificada para operações relacionadas a consórcios, cotas e usuários.
- Usuários: Gerenciamento de usuários com autenticação, registro e atualização de perfis
- Consórcios: Criação e gerenciamento de grupos de consórcio
- Cotas: Administração de cotas individuais, pagamentos e status
- GraphQL API: Interface moderna e flexível para consultas
- Autenticação: Sistema de autenticação com guards
- Modular: Arquitetura modular do NestJS
- TypeScript: Totalmente tipado para maior segurança de código
- Node.js (versão 18 ou superior)
- npm ou yarn
- Variáveis de ambiente configuradas
# Instalar dependências
$ npm install
# Configurar variáveis de ambiente
# Copie e configure o arquivo .env com as configurações necessárias# Desenvolvimento
$ npm run start
# Modo watch (desenvolvimento)
$ npm run start:dev
# Modo produção
$ npm run start:prodApós iniciar o projeto, a interface GraphQL Playground estará disponível em:
http://localhost:3000/graphql
- Registro de novos usuários
- Autenticação e autorização
- Atualização de perfis
- Gerenciamento de endereços
- Criação de grupos de consórcio
- Configuração de valores e prazos
- Adição de cotas ao consórcio
- Atribuição de cotas a usuários
- Registro de pagamentos
- Atualização de status
- Consulta de informações das cotas
# Testes unitários
$ npm run test
# Testes e2e
$ npm run test:e2e
# Cobertura de testes
$ npm run test:cov- NestJS: Framework Node.js para aplicações escaláveis
- GraphQL: API query language com Apollo Server
- TypeScript: Linguagem tipada baseada em JavaScript
- Axios: Cliente HTTP para integração com APIs externas
O projeto segue a arquitetura modular do NestJS:
src/
├── app.module.ts # Módulo principal
├── main.ts # Ponto de entrada da aplicação
├── schema.gql # Schema GraphQL gerado automaticamente
├── common/ # Módulos e utilitários compartilhados
│ └── http/ # Configuração de requisições HTTP
├── user/ # Módulo de usuários
│ ├── auth/ # Autenticação e autorização
│ └── dtos/ # Tipos e inputs GraphQL
├── consorcio/ # Módulo de consórcios
│ └── dtos/ # Tipos e inputs GraphQL
└── cota/ # Módulo de cotas
└── dtos/ # Tipos e inputs GraphQL
Certifique-se de configurar as seguintes variáveis de ambiente:
# Configurações da aplicação
PORT=3000
NODE_ENV=development
# URLs das APIs externas
API_BASE_URL=your_api_url_here