A developer-friendly CLI tool that streamlines MERN stack development by automating project setup, database configuration, and boilerplate generation by implementing MVC Architecture. Create production-ready MongoDB, Express, React, and Node.js applications with best practices built-in
MIT License
Create production-ready MERN stack projects in seconds!
Are you tired of:
MERN Project Generator CLI is your ultimate solution! In just seconds, create a complete, production-ready MongoDB, Express, React, and Node.js project structure with a single command.
.env.example
files included with sensible defaults.gitignore
filesBefore you begin, ensure your system meets these requirements:
Install the CLI tool globally to use it from anywhere in your system:
npm install -g mern-project-cli
To check installation version:
devcli --version
devcli create <your_project_name>
The generated project follows the MVC (Model-View-Controller) pattern, a battle-tested architecture that separates your application into three main components:
your-project-name/
backend/
controllers/ # Handle business logicdocumentation
db/ # Database configuration
middlewares/ # Custom middleware functionsdocumentation
models/ # MongoDB Schema model
routes/ # API route definitions
utils/ # Helper functionsdocumentation
.env.example # Environment variables template
.gitignore # Git ignore rules
constants.js # Application constants
package.json # Dependencies and scripts
README.md # Backend documentation
server.js # Server entry point
frontend/
public/ # Static files
src/ # React source code
components/ # React components
pages/ # Page components
utils/ # Helper functions
App.js # Root component
.env.example # Frontend environment template
package.json # Frontend dependencies
cd your-project-name/backend
npm run dev # Start development server with nodemon
cd your-project-name/frontend
npm start # Start React App
devcli mongodb-connect
devcli mongodb-connect --project custom-name
-p, --project <name>
: Specify custom database nameconnection.js
in the db
folderserver.js
# Using project name
devcli mongodb-connect
# Using custom database name
devcli mongodb-connect --project custom_name
// db/connection.js
require('dotenv').config();
const mongoose = require('mongoose');
const dburl = process.env.DB_URL || "mongodb://localhost:27017/your_db_name";
mongoose.connect(dburl)
.then(() => console.log("Connected to DB Successfully"))
.catch((err) => console.log(err.message));
devcli devcli mongoose-schema <schema-name> <fieldName:fieldType fieldName:fieldType ...>
Example
devcli mongoose-schema User name:String email:String password:String
This will create a User.js
file with a Mongoose schema inside the models/
directory:
//models/User.js
import mongoose from 'mongoose';
const UserSchema = new mongoose.Schema({
name: { type: String, required: true },
email: { type: String, required: true },
password: { type: String, required: true }
});
const User = mongoose.model('User', UserSchema);
export default User;
The mongoose-schema
command takes a model name (User) and field definitions (name:String, email:String, password:String), generating a Mongoose model file in the models/
folder.
Let's create a blog application from scratch:
# Step 1: Install CLI globally
npm install -g mern-project-cli
# Step 2: Create new project
devcli create my-blog-app
# Step 3: Set up backend
cd my-blog-app/backend
npm run dev
# Step 4: Set up frontend (new terminal)
cd ../frontend
npm start
# Step 5: Connect MongoDB (optional)
cd ../backend
devcli mongodb-connect
# Step 6: Generate Mongoose Scheama (optional)
devcli mongoose-schema Blog name:String category:String
Congratulations! Your blog application structure is ready with:
- Backend running on `http://localhost:5000`
- Frontend running on `http://localhost:3000`
- MongoDB connected and ready to use
# Server Configuration
PORT=5000
# Database Configuration
DB_URI=mongodb://localhost:27017/your_db_name
# API Configuration
REACT_APP_API_URL=http://localhost:5000
npm run dev # Start with auto-reload (development)
npm start # Start without auto-reload (production)
npm start # Start development server
npm run build # Create production build
npm test # Run tests
npm run eject # Eject from Create React App
.gitignore
filesSkip the boring setup and jump straight into building your next big idea! Whether you're creating a quick prototype, starting a serious project, or learning the MERN stack, this CLI tool gives you the perfect foundation to build upon.
Code Generation
Template System
We welcome and appreciate contributions to MERN Project Generator CLI! If youd like to help improve this tool, feel free to:
This project is licensed under the MIT License - see the LICENSE file for details.
If you find this tool helpful, please consider: