Skip to content

A dockerized boilerplate Node.js API using NestJS and Typescript that includes authentication, input validation, error handling, logging, API versioning, pagination and testing.

License

Notifications You must be signed in to change notification settings

PedroCorreia105/NestAPI

Repository files navigation

NestJs Logo

Node Version NPM Version code style: prettier CodeFactor Code Coverage Build License Stars

DescriptionStackInstallationDatabaseEntity Relationship DiagramRunning the appEndpointsTestVideo TutorialsHelpful reposNode best practicesLicense

Description

A dockerized boilerplate Node.js API using NestJS and Typescript that includes Authentication, Input validation, Error handling, Logging, API versioning and Pagination.

Stack

Language Typescript
Framework NestJS
Database Postgres
ORM Prisma
E2E Testing Jest & Pactum
Load Testing k6
Documentation Swagger
Linter Prettier
CI Github Actions

Installation

$ npm install

Database

# Start postgres container and push migrations
$ npm run db:dev:restart

# Generate migrations
$ npm run prisma:dev:migrate

# Seed data
$ npx prisma db seed

# View data
$ npx prisma studio

Entity Relationship Diagram

Entity Relationship Diagram

Running the app

# Development
$ npm run start

# Watch mode
$ npm run start:dev

# Production
$ npm run start:prod

Endpoints

# API
http://localhost:8080

# Swagger
http://localhost:8080/api

# Grafana
http://localhost:3000/d/k6/k6-load-testing-results

Test

# Run e2e tests
$ npm run test

# Run tests with coverage
$ npm run test:cov

# Run load tests
$ npm run test:load
Coverage Report Load Report

Video Tutorials

Helpful repos

Node best practices

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

A dockerized boilerplate Node.js API using NestJS and Typescript that includes authentication, input validation, error handling, logging, API versioning, pagination and testing.

Topics

Resources

License

Stars

Watchers

Forks