create-clean-nest
Version:
NestJS template with Clean Architecture principles
127 lines (86 loc) โข 3.23 kB
Markdown
# ๐บ Nest Clean Architecture Template
A starter project for building scalable and maintainable [NestJS](https://nestjs.com/) applications using **Clean Architecture** principles.
## ๐ Getting Started
To create a new project based on this template, run:
```bash
npm create clean-nest@latest my-app
```
This will automatically clone the template into a new directory named my-app and install all dependencies.
## ๐ฆ Features
- ๐พ Clean and modular folder structure
- ๐ฒ Separation of concerns via Domain, Application, Infrastructure, and Interface layers
- ๐ Ready for Dependency Injection and SOLID principles
- โจ Minimal, unopinionated starting point
- ๐ฆ ESLint + Prettier setup with custom rules included
- ๐ Prisma setup for easy database integration
## ๐ ๏ธ Tech Stack
๐บ NestJS
๐ฆ TypeScript
โก ESLint
๐ Prettier
๐ Prisma for database management
## ๐๏ธ Project Structure
```
src/
โโโ application/ # Use cases (business logic orchestration)
โ โโโ use-cases/
โโโ controllers/ # Interface layer (e.g. HTTP entrypoints)
โโโ domain/ # Core domain logic
โ โโโ entities/
โ โโโ repositories/ # Abstract interfaces
โ โโโ services/
โโโ infrastructure/ # Implementations (DB, external APIs, etc.)
โ โโโ services/
โ โโโ repositories/
โ โโโ prisma
โ โโโ .config
โ โโโ schema.prisma
โ โโโ migrations
โโโ shared/ # Common mappers, DTOs, and utilities
โ โโโ dtos/
โ โโโ mappers/
โโโ app.module.ts # Root module
โโโ main.ts # App bootstrap
โ.env.example # Environment config sample
```
## ๐ Prisma Setup
This template includes Prisma for database interaction. After creating your project, follow these steps:
1. Set up your database by configuring the `DATABASE_URL` in the `.env` file.
2. Run the following command to generate Prisma client:
```bash
npx prisma generate
```
3. If you need to run database migrations, use the following command:
```bash
npx prisma migrate dev --name init
```
4. Now, you can use Prisma in your application to interact with your database!
To start your project, run:
```bash
npm run start:dev
```
## ๐งน Post-install Cleanup
After generating your project, you will see a create-template.js file at the root of your project.
This file was used during the setup process and is no longer needed.
You can safely delete it:
```bash
rm create-template.js
```
Or on Windows:
```bash
del create-template.js
```
That's it โ your project is clean and ready to go! ๐พ
## ๐ง Clean Architecture Overview
This template is inspired by Robert C. Martin (Uncle Bob)'s Clean Architecture principles.
The goal is to:
Isolate business logic (domain + use cases)
Keep infrastructure replaceable (DB, HTTP, etc.)
Promote testability and scalability
## ๐ License
MIT โ feel free to use and modify!