A fully responsive Blog Application built using the MERN Stack (MongoDB, Express.js, React, Node.js) with features like JWT authentication, Google authentication (Firebase), Redux Toolkit for state management, and a modern UI.
🌐 Live Demo: mern-blog-rg79.onrender.com
- 🔐 JWT Authentication – Secure user authentication and authorization.
- 🔑 Google Authentication – Sign in with Google using Firebase.
- 📝 Create & Manage Blog Posts – Admin can create, update, and delete blog post.
- 🔍 Advanced Search – Filter blog posts by category, tags, and keywords.
- 📱 Fully Responsive – Works seamlessly across all devices.
- 🛠️ Redux Toolkit – Efficient state management for a smooth user experience.
- 📸 Image Uploads – Upload images for blog posts and user profile.
- 👤 User Profiles – User can create, update, and delete his Profile.
- 🏢 Admin Dashboard – Manage users, blog posts, and comments.
- Frontend: React, Redux Toolkit, Tailwind CSS
- Backend: Node.js, Express.js
- Database: MongoDB
- Authentication: JWT (JSON Web Tokens), Firebase (Google Authentication)
- Deployment: Render
| Home Page 1 | Home Page 2 | Home Page 3 |
|---|---|---|
![]() |
![]() |
![]() |
| About Page |
|---|
![]() |
| Project Page |
|---|
![]() |
| Comment 1 | Comment 2 |
|---|---|
![]() |
![]() |
| Create Post Page |
|---|
![]() |
| Update Post Page |
|---|
![]() |
| user profile Page |
|---|
![]() |
| Admin Profile | Manage Post | Delete Post | Manage User | Manage Comment | Dashboard |
|---|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| Sign In | Sign Up | Password Conditions |
|---|---|---|
![]() |
![]() |
![]() |
| Search Page 1 | Search Page 2 |
|---|---|
![]() |
![]() |
| Post Details 1 | Post Details 2 | Post Details 3 |
|---|---|---|
![]() |
![]() |
![]() |
-
Clone the Repository
git clone https://github.com/hadialkari/MERN-Blog.gitc cd mern-blog -
Install Dependencies
For the client (frontend):
cd client npm installFor the server (backend):
cd api npm install -
Set Up Environment Variables
Create a
.envfile in theapidirectory and add the following:MONGO_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret_key
Create a
.envfile in theclientdirectory and add the following:VITE_FIREBASE_API_KEY = 'your_VITE_FIREBASE_API_KEY'
-
Run the Application
Start the backend server:
cd api npm run devStart the frontend development server:
cd client npm run dev -
Open the Application
Visit http://localhost:5173/ in your browser.
To enable Google authentication:
- Go to the Firebase Console.
- Create a new project and set up authentication using Google.
- Add your web app to the Firebase project and copy the Firebase configuration.
- Node.js
- JavaScript
- Blog
- MongoDB
- React.js
- Express.js
- Admin Dashboard
- Fullstack Development
- JWT Authentication
- MERN Stack
- Redux Toolkit
This project is open-source.























