template_typescript-prisma-postgresql v0.2.0
Template: API Node.js
Typescript - Prisma - PostgreSQL - Docker - Swagger - Jest
Check the Documentation in pt-br by clicking 🇧🇷 here.
Contact the Developer
Index
- Contact the Developer
- ERM (Entity Relationship Model)
- Customer Response Flow
- Project Dependencies
- Tools Used
- Using the Application
ERM (Entity Relationship Model)
Customer Response Flow
Project Dependencies
- 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.
Tools Used
- API Documentation: Swagger;
- Compiler: SWC;
- Container: Docker;
- Crypto: Bcrypt;
- Database: PostgreSQL;
- Logger: Winston;
- ORM: Prisma;
- Tests: Jest and Supertest;
- Token: JWT.
Using the Application
Requirements:
Step by step 1. 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 rootCopy the code from
example.env
to.env
Expand the
docker
directoryCreate the
.env
fileCopy the code from the
example.env
to the.env
created in thedocker
directoryInstall 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
API Documentation
Swagger
IMPORTANT: It is necessary to run the command yarn dev
JSON for testing via Insomnia
Import this file into Insomnia.
Useful Commands
Docker
docker-compose -f docker/docker-compose.yaml --env-file docker/.env up -d
Application
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
Database
Visual interface for managing the Database
yarn prisma studio
Automated Tests
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