UNPKG

create-clean-nest

Version:

NestJS template with Clean Architecture principles

127 lines (86 loc) โ€ข 3.23 kB
# ๐Ÿบ 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!