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
.envfile 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.jsonfile. 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
.envfile in the Project rootCopy the code from
example.envto.envExpand the
dockerdirectoryCreate the
.envfileCopy the code from the
example.envto the.envcreated in thedockerdirectoryInstall 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 devAPI 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 -dApplication
Start Application
yarn devReset of Migrations and Populated Database
yarn migrate:resetExpress Start of the Application
yarn startAll necessary commands are dynamically run
Database
Visual interface for managing the Database
yarn prisma studioAutomated Tests
To run all tests
yarn testTo check test coverage
yarn test --coverageTo run a specific test
yarn test {path_to_test+file_name_whit_extension}Example: yarn test src/auth/jsonwebtoken.spec.ts