Skip to content

Template para projetos em NestJS pré-configurado e permitindo que se concentrem no desenvolvimento de recursos específicos do aplicativo.

License

Notifications You must be signed in to change notification settings

CleilsonAndrade/nestjs-boilerplate

Repository files navigation

NestJS Boilerplate

Template para projetos em NestJS pré-configurado e permitindo que se concentrem no desenvolvimento de recursos específicos do aplicativo.

Logo

📒 Índice

📃 Descrição

Template inicial para projetos em NestJS pré-configurado e permitindo que se concentrem no desenvolvimento de recursos específicos do aplicativo. O template utiliza o framework NestJS para NodeJS, empregando o TypeScript para a sintaxe. Já vem com várias dependências instaladas, incluindo o Terminus para utilização do módulo de Health, permitindo obter informações sobre o uso dos recursos da API, pré-configuração do Prisma ORM com o banco SQLite, pré-configuração do token JWT, além de bibliotecas como axios, Moment, Class Validator, suporte para cobertura de testes com Jest, padrão de código com ESLInt, commits com Commitizen e exemplo de documentação com Swagger, além de suporte a temas com Swagger themes e Workflows pré configurados para o Github, com esteiras para deploy de ambientes dev, stage e prod com listagem de commits e reset e reversão.

📌 Requisitos Funcionais

  • JWT Token configurado
  • Exemplo de rotas com autenticação
  • Terminus Module para verificar recursos da API
  • Prisma ORM para manipulação de dados do banco
  • Configuração para o SQLite
  • Class Validator para DTO
  • Imagem Docker para MySQL
  • Converter BigInt para JSON (Serialização)
  • Exemplo de documentação com Swagger
  • Padronização de sintaxe de código com ESLint e Prettier
  • Padronização de commits semânticos e esteira com Commitizen

Features

  • Workflows para ambientes: dev, stage e prod
  • Configuração de ecosystem.config para acoplação ao PM2
  • Lib Moment para manipulação de datas com helper para checar formato de datas
  • Helper para remover espaços sobressalentes de string's
  • Suporte a temas para o Swagger

💻 Tecnologias

  • NodeJS
  • TypeScript
  • NestJS
  • JWT
  • Terminus
  • axios
  • Moment
  • Class Validator
  • Prisma ORM
  • Jest
  • Commitizen
  • ESLInt
  • Prettier
  • Swagger
  • Swagger themes

📍 Endpoints

Método Endpoint Resumo Autenticação Role
GET / Responsável por ser o endpoint inicial Não *
GET /auth/login Responsável por autenticar o usuário, gerando o Bearer Token JWT Sim *
POST /users Responsável por cadastrar o usuário Não *
GET /users Responsável por listar todos os usuários com paginação Sim *
GET /users/:id Responsável por buscar usuário, informando o ID Sim *
PATCH /users/:id Responsável por atualizar as informações de um usuário, informando o ID Sim *
DELETE /users/:id Responsável por desabilitar um usuário, informando o ID Sim *
GET /health Responsável por utilizar o Terminus para consulta dos recursos de uso da API Sim *
GET /docs Responsável por servir a documentação dos recursos da API Não *

🚀 Instalação

  # Clone este repositório:
  $ git clone https://github.com/CleilsonAndrade/nestjs-boilerplate.git
  $ cd ./nestjs-boilerplate

  # Instalar as dependências:
  $ yarn install

  # Gerar o código TypeScript com base nos modelos do Prisma:
  $ npx prisma generate

  # Aplicar migrações ao banco de dados:
  $ npx prisma migrate dev

  # Executar:
  $ yarn start:dev
  
  # Executar testes:
  $ yarn test:watch

  # Utilizar a esteira para commits:
  $ yarn commit

📝 Licença

Esse projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.


Feito com 💜 by CleilsonAndrade