Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cleilsonandrade/nestjs-boilerplate
Template para projetos em NestJS pré-configurado e permitindo que se concentrem no desenvolvimento de recursos específicos do aplicativo.
https://github.com/cleilsonandrade/nestjs-boilerplate
axios backend boilerplate boilerplate-template class-validator docker eslint fastify jest nestjs orm prisma rxjs semantic-commits swagger template token typescipt typescript
Last synced: 5 days ago
JSON representation
Template para projetos em NestJS pré-configurado e permitindo que se concentrem no desenvolvimento de recursos específicos do aplicativo.
- Host: GitHub
- URL: https://github.com/cleilsonandrade/nestjs-boilerplate
- Owner: CleilsonAndrade
- License: mit
- Created: 2023-06-25T13:38:02.000Z (over 1 year ago)
- Default Branch: dev
- Last Pushed: 2024-08-19T15:33:39.000Z (3 months ago)
- Last Synced: 2024-08-20T18:29:28.654Z (3 months ago)
- Topics: axios, backend, boilerplate, boilerplate-template, class-validator, docker, eslint, fastify, jest, nestjs, orm, prisma, rxjs, semantic-commits, swagger, template, token, typescipt, typescript
- Language: TypeScript
- Homepage:
- Size: 958 KB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
NestJS Boilerplate
Template para projetos em NestJS pré-configurado e permitindo que se concentrem no desenvolvimento de recursos específicos do aplicativo.
# 📒 Índice
* [Descrição](#descrição)
* [Requisitos Funcionais](#requisitos)
* [Features](#features)
* [Tecnologias](#tecnologias)
* [Endpoints](#endpoints)
* [Instalação](#instalação)
* [Licença](#licença)# 📃 Descrição
Template inicial para projetos em [**NestJS**](https://nestjs.com/) pré-configurado e permitindo que se concentrem no desenvolvimento de recursos específicos do aplicativo. O template utiliza o framework [**NestJS**](https://nestjs.com/) para [**NodeJS**](https://nodejs.org/en), empregando o [**TypeScript**](https://www.typescriptlang.org/) para a sintaxe. Já vem com várias dependências instaladas, incluindo o [**Terminus**](https://github.com/nestjs/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**](https://www.prisma.io/) com o banco [**SQLite**](https://www.sqlite.org/), pré-configuração do token [**JWT**](https://github.com/nestjs/jwt), além de bibliotecas como [**axios**](https://github.com/axios/axios), [**Moment**](https://momentjs.com/), [**Class Validator**](https://github.com/nestjs/class-validator), suporte para cobertura de testes com [**Jest**](https://jestjs.io/pt-BR/), padrão de código com [**ESLInt**](https://github.com/eslint/eslint), commits com [**Commitizen**](https://github.com/commitizen/cz-cli) e exemplo de documentação com [**Swagger**](https://github.com/nestjs/swagger), além de suporte a temas com [**Swagger themes**](https://github.com/ilyamixaltik/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
- [x] JWT Token configurado
- [x] Exemplo de rotas com autenticação
- [x] Terminus Module para verificar recursos da API
- [x] Prisma ORM para manipulação de dados do banco
- [x] Configuração para o SQLite
- [x] Class Validator para DTO
- [x] Imagem Docker para MySQL
- [x] Converter BigInt para JSON (Serialização)
- [x] Exemplo de documentação com Swagger
- [x] Padronização de sintaxe de código com ESLint e Prettier
- [x] Padronização de commits semânticos e esteira com Commitizen## Features
- [x] Workflows para ambientes: dev, stage e prod
- [x] Configuração de ecosystem.config para acoplação ao PM2
- [x] Lib Moment para manipulação de datas com helper para checar formato de datas
- [x] Helper para remover espaços sobressalentes de string's
- [x] 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
```bash
# 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](LICENSE) para mais detalhes.---
Feito com 💜 by CleilsonAndrade