Template: API Node.js
Typescript - Prisma - PostgreSQL - Docker - Swagger - Jest
Check the Documentation in pt-br by clicking 🇧🇷 here.
- Contact the Developer
- ERM (Entity Relationship Model)
- Customer Response Flow
- Project Dependencies
- Tools Used
- Using the Application
- bcrypt: A library to help you hash passwords;
- dotenv: Dotenv is a zero-dependency module that loads environment variables from a
.env
file intoprocess.env
; - express: Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications;
- express-async-errors: A simple ES6 async/await support hack for ExpressJS;
- jsonwebtoken: An implementation of JSON Web Tokens;
- reflect-metadata: A library that serves multiple use cases (dependency composition/injection, runtime type assertions, reflection/mirroring, testing) wants the ability to add additional metadata to a class in a consistent way;
- swagger-ui-express: This module allows you to serve auto-generated swagger-ui generated API docs from express, based on a
swagger.json
file. The result is living documentation for your API hosted from your API server via a route; - tsyringe: A lightweight dependency injection container for TypeScript/JavaScript for constructor injection;
- winston: A log logger.
- API Documentation: Swagger;
- Compiler: SWC;
- Container: Docker;
- Crypto: Bcrypt;
- Database: PostgreSQL;
- Logger: Winston;
- ORM: Prisma;
- Tests: Jest and Supertest;
- Token: JWT.
Requirements:
Step by step
-
Clone this repository:
SSH
git clone git@github.com:padupe/template_node-ts-prisma-postgresql.git
HTTPS
git clone https://github.com/padupe/template_node-ts-prisma-postgresql.git
-
Create the
.env
file in the Project root -
Copy the code from
example.env
to.env
-
Expand the
docker
directory -
Create the
.env
file -
Copy the code from the
example.env
to the.env
created in thedocker
directory -
Install dependencies
yarn install
- Upload the Database container
docker-compose -f docker/docker-compose.yaml --env-file docker/.env up -d
- Run the command to instantiate Prisma
yarn prisma generate
- Run the command to run the migrations
yarn migrate:run
- Populate the Database
yarn seed
- Run the Application
yarn dev
Swagger
IMPORTANT: It is necessary to run the command yarn dev
Import this file into Insomnia.
docker-compose -f docker/docker-compose.yaml --env-file docker/.env up -d
Start Application
yarn dev
Reset of Migrations and Populated Database
yarn migrate:reset
Express Start of the Application
yarn start
All necessary commands are dynamically run
Visual interface for managing the Database
yarn prisma studio
To run all tests
yarn test
To check test coverage
yarn test --coverage
To run a specific test
yarn test {path_to_test+file_name_whit_extension}
Example: yarn test src/auth/jsonwebtoken.spec.ts