Skip to content

A full-stack blogging platform built with the MERN stack. Includes JWT auth, CRUD operations, rich text editing, and Cloudinary image uploads.

License

Notifications You must be signed in to change notification settings

dheepaky/Mern-Blog-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 MERN Blog App: The Full-Stack Content Hub

Build Your Digital Publication on a Robust Stack

Backend Frontend Database Images License
Node.js React MongoDB Cloudinary License

A powerful, production-ready Blog CMS built with the MERN stack. This application demonstrates best practices for secure authentication, scalable media handling, and a fully responsive user experience.


✨ Core Features & Highlights

Security & User Experience

  • 🔒 Secure Auth: Implements JSON Web Tokens (JWT) and Bcrypt for robust and protected user registration and login.

  • ✏️ Rich Text Editing: Integrated editor allows for expressive, formatted content creation.

  • 🖼️ Scalable Media: Uses Cloudinary to offload and efficiently serve all uploaded post images.

  • 📱 Fully Responsive: Crafted with Tailwind CSS and Material-UI (MUI) for a clean, mobile-first design.

  • 🏷️ Intelligent Filtering: Quickly search posts


⚙️ Tech Stack Deep Dive

This project leverages a modern, decoupled architecture across the MERN stack.

Frontend (Client) - React ⚛️

Tool Purpose
React Core library for dynamic UI development.
Tailwind CSS Utility-first CSS framework for rapid, responsive styling.
Material-UI (MUI) High-quality, pre-built components for complex UI elements.
Axios Promise-based HTTP client for API interaction.

Backend (Server) - Node.js & Express ⚙️

Tool Purpose
Express.js Minimalist framework for building the RESTful API endpoints.
Mongoose MongoDB Object Data Modeling (ODM) for robust data schemas.
Cloudinary SDK API integration for remote image uploading and storage.
JWT & Bcrypt Security layer for token-based authorization and password hashing.

🛠️ Getting Started (Run Locally)

1. Clone & Install

Clone the repo and install dependencies for both the server and client:

git clone [https://github.com/dheepaky/Mern-Blog-App.git](https://github.com/dheepaky/Mern-Blog-App.git)
cd Mern-Blog-App

# Install server dependencies
npm install --prefix server

# Install client dependencies
npm install --prefix client


MONGO_URI=YOUR_MONGODB_CONNECTION_STRING
JWT_SECRET=SUPER_SECRET_KEY

# Cloudinary credentials
CLOUDINARY_CLOUD_NAME=YOUR_CLOUD_NAME
CLOUDINARY_API_KEY=YOUR_API_KEY
CLOUDINARY_API_SECRET=YOUR_API_SECRET

PORT=5000

Running the Application

  1. Start the Backend Server: Navigate back to the server directory and run the development script:

    npm run dev  # Requires nodemon
    # OR
    npm start 

    The server will typically run on http://localhost:5000.

  2. Start the Frontend Client: Navigate to the client directory and run:

    npm start

    The React application will open in your browser, typically at http://localhost:3000.

You're all set! Now you can test the upload functionality and see your assets appear instantly on Cloudinary.


🤝 Contributing

Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'feat: Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 License

Distributed under the MIT License. See the LICENSE file for more information.


👤 Author

Dheepak Y

About

A full-stack blogging platform built with the MERN stack. Includes JWT auth, CRUD operations, rich text editing, and Cloudinary image uploads.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published