- Fastify
- TypeORM: tested on MySQL (ready for other DBs)
- Mongoose
- Better ESLint configuration
- Better Prettier configuration
- Husky (pre-commit, pre-push)
- Simple and necessary Swagger definitions
- Read-Eval-Print-Loop (REPL) mode
- Jobs (each job is run as a Nest CLI separate process)
- Custom config directory and files
- Config validation
- Common (in a repo) and local
- Access and Refresh tokens
- Storing Refresh tokens in DB
- Login / Logout
- Refresh token revoking
- REST API Endpoints: POST, POST upload, GET, PUT, PATCH, DELETE
- Validation and DTOs for requests Params, Bodies and Query strings
- Modules, sub modules
- Router, Controllers, Services, Entities, Repository
- Configuration
- Interfaces to sync with Front End
- Logger Using
- Static Content
- Jobs
- Decorators, Guards, Strategies, and others
- Role-based access control (RBAC)
- Unit Tests with Jest spy
- E2E Tests with Jest Mock of DB layer
- Multi-stage build (dev, prod)
Install dependencies:
npm install
cp ./config/common.env ./.env
docker compose up
npm run start:dev
Go to http://localhost:3015
Finish Docker
docker compose stop