mern-project-cli
v2.0.0
Published
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 applicatio
Downloads
318
Maintainers
Readme
🚀 MERN Project Generator CLI
Create production-ready MERN stack projects in seconds!
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
- 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
- Installation
- Commands
- Complete User Journey Example
- Future Enhancements
- Contribute
- License
- Support the project
⚡ Requirements
Before you begin, ensure your system meets these requirements:
Node.js: Version 14.x or higher
- Check with:
node --version
- Download from: nodejs.org
- Check with:
npm: Version 6.x or higher
- Check with:
npm --version
- Comes with Node.js installation
- Check with:
MongoDB: Local or remote installation
- Local installation: MongoDB Community Server
- Cloud option: MongoDB Atlas
📦 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 thedb
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));
📖 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
🎉 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
- 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
Code Generation
- Database schema generator
- API route generator
- React component generator
- CRUD operations generator
Template System
- Custom template support
🤝 Contribute to the Project
We welcome and appreciate contributions to MERN Project Generator CLI! If you’d 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
- Sharing it with your fellow developers
- Contributing to its development