## NodePilot

**NodePilot** is a powerful and customizable CLI tool designed to instantly scaffold modern **Node.js + TypeScript** applications.
With a single command, it sets up a production-ready **Express** project complete with a clean folder structure, example modules, MongoDB integration, and essential developer configurations helping you start coding faster and smarter .

---

### Features

- Auto-generates Node.js + TypeScript boilerplate  
- Built-in folder structure (Express-ready)  
- Integrated MongoDB setup with Mongoose  
- Auto-generates sample Model, Controller, and Route files  
- Pre-configured `.env` and sample model for quick database connection  
- Includes `tsconfig.json`, `.env.example`, and logger setup 
- JWT-based Authentication (Access Token & Refresh Token ready)
- Secure password hashing using bcrypt
- Pre-built Auth module (Register / Login structure)
- Swagger (OpenAPI) integration for API documentation
    - Auto-generated API docs
    - Easy endpoint testing via browser 
- Supports build-only publishing (`dist/` only)  
- Works globally via `npm install -g` or `npx nodepilot`

---

### Installation

Install globally:
```bash
npm install -g nodepilot
```
```bash
nodepilot my-app
```

Or use directly without installing:
```bash
npx nodepilot my-app
```
For Version Check:
```bash
nodepilot -v or nodepilot --version
```



### Project Structure

```
my-app/
├── src/
│   ├── app.ts
│   ├── server.ts
│   ├── utils/
│   │   ├── logger.ts
│   │   ├── catchAsync.ts
│   │   └── sendResponse.ts
│   │   └── tokenGenerate.ts
│   ├── app/
│   │   ├── interface/
│   │   │   └── index.d.ts
│   │   ├── midleware/
│   │   │   └── globalErrorhandle.ts
│   │   │   └── authenticate.ts
│   │   │   └── validateRequest.ts
│   │   ├── routes/
│   │   │   └── index.ts
│   │   └── modules/
│   │       └── blog/
│   │           ├── blog.interface.ts
│   │           ├── blog.model.ts
│   │           ├── blog.routes.ts
│   │           ├── blog.controller.ts
│   │           └── blog.services.ts
│   │           └── blog.swagger.ts
│   │           user/
│   │           ├── user.interface.ts
│   │           ├── user.model.ts
│   │           ├── user.routes.ts
│   │           ├── user.controller.ts
│   │           └── user.services.ts
│   │           └── user.swagger.ts
│   │           └── user.validation.ts
│   │           auth/
│   │           ├── auth.interface.ts
│   │           ├── auth.routes.ts
│   │           ├── auth.controller.ts
│   │           └── auth.services.ts
│   │           └── auth.swagger.ts
│   ├── docs/
│   │   └── swagger.ts
│   ├── config/
│   │   └── index.ts
│   └── errors/
│       └── ApiError.ts
├── .env
├── .env.example
├── .gitignore
├── package.json
├── tsconfig.json
└── dist/ (after build)
```



### Environment Variables

Example `.env` file:
```
PORT=5000
DATABASE_URL=mongodb://127.0.0.1:27017/mydb
JWT_ACCESS_SECRET=1c48c222367ee9b8243404567c12adf9e202c1886e338de1c3b4be4ed95ff5ef2a083745feb2197497a9c03c84ae2b0f2b0ce2e62d9a6a351fd8c0b9f81907fd
JWT_REFRESH_SECRET=8fa0ef28baf5b6702876c4e6e217905711e8a3a2b35e2652ede9900dc9d28da4fcd2843f9b872dc108c3afdda3cf2455deff1dd4aea1e18fa1070ba6dc67bbf6
```

---

### License

MIT © 2026 — Created by **Adnan Hossain**

---

### Support

- GitHub: [https://github.com/adnanhjoy/nodepilot](https://github.com/adnanhjoy/nodepilot)
- Email: `adnanhjoy@gmail.com`
- Author: [Adnan Hossain](https://github.com/adnanhjoy)
