https://github.com/mohamedashraf701/node-initdb
node-initdb is a CLI tool for initializing database configurations and structures in Node.js projects.
https://github.com/mohamedashraf701/node-initdb
expressjs mongoose nodejs npmjs-packages sequalize
Last synced: 7 months ago
JSON representation
node-initdb is a CLI tool for initializing database configurations and structures in Node.js projects.
- Host: GitHub
- URL: https://github.com/mohamedashraf701/node-initdb
- Owner: MohamedAshraf701
- License: apache-2.0
- Created: 2024-05-09T19:12:26.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-05-29T05:41:20.000Z (9 months ago)
- Last Synced: 2025-07-09T10:19:04.163Z (8 months ago)
- Topics: expressjs, mongoose, nodejs, npmjs-packages, sequalize
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/node-initdb
- Size: 2.27 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
node-initdb
CLI tool for initializing project configurations and structures in Node.js projects.
---
node-initdb is a CLI tool for initializing project configurations and structures in Node.js projects. **It now requires you to select a database, a web framework, a language (JavaScript or TypeScript), and a package manager for the tool to work.** In addition to setting up your chosen database and framework, node-initdb now supports file upload functionality and JWT-based authentication.

## Installation
Install node-initdb globally using npm:
```bash
npm install -g node-initdb
```
## Usage
Navigate to your project directory and run node-initdb with the appropriate options. **You must choose one option each for:**
- **Database:**
- MongoDB: `--mongo` or `-m`
- Sequelize: `--seque` or `-s`
- **Web Framework:**
- Express: `--express` or `-e`
- Fastify: `--fastify` or `-f`
- Elysia: `--elysia` or `-el`
- **Language:**
- JavaScript: `--javascript` or `-j`
- TypeScript: `--typescript` or `-t`
- **Package Manager:**
- Npm: `--npm` or `-n`
- Bun: `--bun` or `-b`
- Yarn: `--yarn` or `-ya`
- Pnpm: `--pnpm` or `-pn`
**Important:** All four categories (database, framework, language, and package manager) are required. If any one is missing, node-initdb will not run.
Optionally, you can add `--yes` (or `-y`) to skip interactive prompts and use default values.
### Examples
- **MongoDB, Express, and TypeScript with npm:**
```bash
node-initdb --mongo --express --typescript --npm
# or shorthand:
node-initdb -m -e -t -n
```
- **Sequelize, Fastify, and JavaScript with bun:**
```bash
node-initdb --seque --fastify --javascript --bun
# or shorthand:
node-initdb -s -f -j -b
```
- **Sequelize, Elysia, and JavaScript with yarn:**
```bash
node-initdb --seque --elysia --javascript --yarn
# or shorthand:
node-initdb -s -el -j -ya
```
### Add Module Task
To add a new module using `node-add`, run:
```bash
node-add [options]
```
Replace `` with your desired module name. Use the same options for database, framework, language, and package manager:
- Database: `-m` / `--mongo`, `-s` / `--seque`
- Framework: `-e` / `--express`, `-f` / `--fastify`, `-el` / `--elysia`
- Language: `-j` / `--javascript`, `-t` / `--typescript`
- Package Manager: `-n` / `--npm`, `-b` / `--bun`, `-ya` / `--yarn`, `-pn` / `--pnpm`
#### Example
```bash
node-add "user" -m -e -t
```
## Folder Structure
After running node-initdb, your project will have the following structure:
```
- config/
- Controllers/
- Routes/
- Models/
- Middleware/
- uploads/
- Utils/
```
## Files Created
node-initdb creates essential files such as controllers, routes, models, configuration files, and middleware. In addition, the setup includes:
- **File Upload:** Pre-configured file upload functionality.
- **JWT Authentication:** Setup for JWT-based authentication.
## Dependencies
Depending on your chosen configuration, node-initdb installs the following dependencies:
- **Database:**
- **MongoDB:** `mongoose`
- **Sequelize:** `sequelize`, `mysql2`
- **Web Framework:**
- **Express:** `express`
- **Fastify:** `fastify`
- **Elysia:** `elysia`
- **New Features:**
- **File Upload:** `multer`
- **JWT Authentication:** `jsonwebtoken`
## Contributing
Contributions are welcome! Fork the repository, implement your changes, and submit a pull request. Please follow the existing coding style and guidelines.
## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
## Get in Touch
For questions or support, feel free to reach out:
- **Email:** ashrafchauhan567@gmail.com
- **GitHub:** [@MohamedAshraf701](https://github.com/MohamedAshraf701)
## Support
If you find node-initdb useful, please consider supporting the project: