Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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.

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.


Logo

# 📒 Í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