mern-project-cli

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

Downloads
558
Stars
3

MERN Project Generator CLI

Create production-ready MERN stack projects in seconds!

Website https://devcli.vercel.app

Are you tired of:

  • Spending hours setting up basic MERN project structures?
  • Configuring MongoDB connections from scratch?
  • Creating the same folder structure over and over?
  • Missing important configurations in your initial setup?
  • Copying boilerplate code from old projects?

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.

Features

  • One Command Setup: Generate both frontend and backend with a single command
  • Industry-Standard Structure: Pre-configured folder structure following best practices
  • Instant MongoDB Integration: Connect to MongoDB with zero configuration
  • Generate Mongoose Schema: Generate Mongoose Schema with just one command
  • Development Ready: Hot-reloading enabled for both frontend and backend
  • Pre-configured Environment: .env.example files included with sensible defaults
  • Git Ready: Initialized Git repository with proper .gitignore files

Index

Requirements

Before you begin, ensure your system meets these requirements:

  • Node.js: Version 14.x or higher
  • npm: Version 6.x or higher
  • MongoDB: Local or remote installation

Installation

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

Commands

1. Create MERN Project

devcli create <your_project_name>

What This Command Does:

1. ** Creates Project Structure**:

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
2. Installs Dependencies:
  • Backend:
    • Express
    • Mongoose
    • CORS
    • dotenv
    • nodemon (dev dependency)
  • Frontend:
    • React
    • React Router
    • Axios
    • Other Create React App dependencies

After Creation:

Start Backend Development:
cd your-project-name/backend
npm run dev             # Start development server with nodemon
Start Frontend Development:
cd your-project-name/frontend
npm start               # Start React App

2. Connect MongoDB

  • Create database as your_project_name_db
devcli mongodb-connect
  • Or with custom database name
devcli mongodb-connect --project custom-name  

Options:

  • -p, --project <name>: Specify custom database name
  • No options: Uses project folder name as database name

What This Command Does:

1. Creates Database Connection:
  • Generates connection.js in the db folder
  • Sets up Mongoose connection with error handling
  • Configures connection string based on environment variables
2. Updates Server Configuration:
  • Adds database connection import to server.js
  • Sets up connection status logging

Usage Examples:

# Using project name
devcli mongodb-connect

# Using custom database name
devcli mongodb-connect --project custom_name

Generated Files:

// 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));

3. Generate Mongoose Schema

  • Create mongoose schema for your backend.
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;

Explanation:

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.

Complete User Journey Example

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

Environment Configuration

Backend (.env)

# Server Configuration
PORT=5000

# Database Configuration
DB_URI=mongodb://localhost:27017/your_db_name

Frontend (.env)

# API Configuration
REACT_APP_API_URL=http://localhost:5000

Development Commands

Backend Commands

npm run dev     # Start with auto-reload (development)
npm start       # Start without auto-reload (production)

Frontend Commands

npm start       # Start development server
npm run build   # Create production build
npm test        # Run tests
npm run eject   # Eject from Create React App

Why Choose MERN Project Generator CLI?

Perfect For:

  • Startups: Launch MVPs faster with a solid foundation
  • Freelancers: Start client projects instantly
  • Teams: Maintain consistent project structure across developers
  • Learning: Focus on coding instead of setup when learning MERN stack
  • Hackathons: Get your project up and running in minutes

Built for Real Development:

  • Production-Ready: Follows industry best practices out of the box
  • Scalable Structure: Organized for growth from day one
  • Developer Friendly: Hot-reloading, environment configs, and Git ready
  • Customizable: Easy to modify and extend based on your needs
  • Time-Saving: Eliminate repetitive setup tasks

What You Get:

  • Complete MERN Setup: MongoDB, Express, React, and Node.js configured and ready
  • Modern Tooling: Latest versions of all dependencies
  • Development Mode: Hot-reloading for both frontend and backend
  • API Ready: Basic API structure with examples
  • Database Connected: MongoDB configuration with just one command
  • Generate Schema: Generate Mongoose Schema with one command
  • Environment Ready: Pre-configured environment files
  • Version Control: Git initialized with proper .gitignore files

Skip 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.

Future Enhancements

  1. Code Generation

    • API route generator
    • React component generator
    • CRUD operations generator
  2. Template System

    • Custom template support

Contribute to the Project

We welcome and appreciate contributions to MERN Project Generator CLI! If youd like to help improve this tool, feel free to:

  • Fork the repository
  • Submit pull requests
  • Open issues for bugs or suggestions
    Your contributions will help make this tool even better for the developer community!

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support the Project

If you find this tool helpful, please consider:

  • Giving it a star on GitHub
  • View on NPM mern-project-cli
  • Sharing it with your fellow developers
  • Contributing to its development

Package Rankings
Top 31.46% on Npmjs.org
Badges
Extracted from project README
Node.js Package
Related Projects