Nestjs API Boilerplate: Typescript, Postgresql, TypeORM, Swagger for Api documentation, Passport-JWT authentication, Jest, Env configuration, Migrations, Seeds, Docker, most popular node js libraries, and best application architecture.
This is an a personal effort made with love to setup this architecture and dev environment for new node projects using NestJS.
# 1. Clone the repository or click on "Use this template" button.
git clone https://github.com/MidoAhmed/nestjs-api-boilerplate nestjs-api-boilerplate
# 2. Enter your newly-cloned folder.
cd nestjs-api-boilerplate
# 3. Install dependencies.
npm i
# 4. fill in default.yml.example and development.yml.example files and rename it to default.yml and development.yml
# 5. Run docker containers
npm run docker:up
# you can verify your DB by opening http://localhost:8080 (Adminer)
# 6. Run development server
npm run start:dev
# access swagger api doc by opening http://localhost:3000/docs
🥳🥳🥳
# 7. Read the documentation linked below for "Setup and development" (Sorry ! it is not yet available).
# 1. fill in .env.example file and rename it to .env
# 2. Enter your project folder.
cd nestjs-api-boilerplate
# 2. Install dependencies.
sh scripts/deploy.prod.sh
# 3. Enjoy it 🥳🥳🥳 you have your api up ! 😌
# NB : 🤔 to shut down production
sh scripts/down.prod.sh
- Quick scaffolding
- Create modules, services, controller - right from the CLI!
- Developer friendly
- Enjoy the best Developer eXperience.
- JWT Authentication
- Installed and configured JWT authentication.
- Next generation Typescript
- Always up to date typescript version.
- best application architecture
- Empowered with best practices facilitating the development of scalable server-side applications
- Environment Configuration
- development, staging and production environment configurations
- Swagger Api Documentation
- Already integrated API documentation. To see all available endpoints visit http://localhost:3000/docs
- Seeding Database
- Awesome way to seed test data into your database using typeorm-seeding
- Migrations
- Already provided and configured npm script commands to run our migration process, see 'migrations.doc.txt'
- Caching
- high performance data access using Redis store
- Documentation
- Already setup Compodoc
- Production grade logging system
- Setup an external logger for production grade logging system - winston
- AWS S3
- AWS SDK used for S3, tested with MinIO Server
- Linter
- tslint + eslint + prettier = ❤️
- TypeScript source code Documentation
- Use a documentation generator for TypeScript projects such as or other alternative - https://typedoc.org/
This project includes a docs
folder with more details on: