Skip to content

Uma API desenvolvida em NestJS com Typescript para colocar em prática conhecimentos adquiridos.

Notifications You must be signed in to change notification settings

daniloamsilva/book-collection

Repository files navigation

Book Collection API

Uma API desenvolvida em NestJS com Typescript para colocar em prática conhecimentos adquiridos.

NestJS Version Typescript Version Postgres Version Prisma Version Jest Version

Descrição

Depois de um curso na Rocketseat de NodeJS e outro na Udemy de NestJS, decidi colocar em prática meus conhecimentos nesse pequeno projeto. O usuário pode se registrar, fazer login e gerenciar sua coleção de livros. A API foi feita com esses conceitos em mente:

  • 🔒 Autenticação

A autenticação é uma parte essencial da maioria dos aplicativos. O JSON Web Token ( JWT ) foi a estratégia utilizada nesse projeto.

  • 📚 CRUD dos Livros

CRUD são as quatro operações básicas (criação, consulta, atualização e destruição de dados) utilizadas em bases de dados relacionais. Sua coleção é gerenciada através dessas operações.

  • 🎲 Postgres e Prisma

Utilizei o Postgres como banco de dados e o Prisma para facilitar as consultas, criação de tabelas, relacionamentos e migrations.

  • 🧪 Testes automatizados

O ponto que eu estava mais ansioso para estudar. Consegui fazer uma cobertura de 100% da aplicação com testes unitários e e2e garantindo assim seu funcionamento e qualidade.

  • 📃 Documentação

E por fim utilizei o Swagger para a documentação do projeto. O Nest oferece um módulo bem completo para documentar cada rota direto no código através dos decorators.

Rodando o projeto

  • Primeiro crie um arquivo .env na raiz do projeto utilizando o .env.example como base.
  • Instale as dependências
yarn
  • Se estiver usando o docker, crie um container para o Postgres
docker run --name postgres -e POSTGRES_PASSWORD=docker -p 5432:5432 -d postgres
  • Dispare as migrations para criar o banco de dados
yarn prisma migrate dev
  • Inicie a aplicação
yarn start:dev
  • Para visualizar a documentação acesse a seguinte URL:
http://localhost:3000/api

Testando

  • Todos os testes
yarn test
  • Testes unitários
yarn test:unit
  • Testes e2e
yarn test:e2e
  • Testes com cobertura
yarn test:cov

Insomnia

Na raiz do projeto deixei o arquivo insomnia-collection.json que pode ser importado no Insomnia com as rotas e variáveis de ambiente configuradas.

About

Uma API desenvolvida em NestJS com Typescript para colocar em prática conhecimentos adquiridos.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published