mern-auth-boilerplate
Version:
CLI to scaffold a MERN Auth Boilerplate
138 lines (79 loc) β’ 3.77 kB
Markdown
# MERN Auth Boilerplate β JWT Cookie Auth with Profile Setup
This is a full-stack boilerplate project built using the MERN stack with Zustand for state management and JWT cookie-based authentication. It includes essential features like:
User Sign-up & Login
Secure JWT-based session management using HTTP-only cookies
Protected routes (Home/Profile)
User profile management with Cloudinary image upload
Navbar navigation
Minimal frontend design with extendable structure
This project was crafted with scalability and security in mind, offering a clean and extendable starting point for full-stack developers. Built with care and precision by Jaivardhan Singh ( https://github.com/Jaivardhan7773 ), it's a great launchpad for your next MERN project.
## Installation
```bash
#frontend setup :
cd FRONTEND
npm install
npm run dev
#backend setup :
cd SERVER
npm install
npm run dev
```
## Usage/Examples
```
π Usage / Examples
Once both frontend and backend servers are running:
π 1. Automatic Redirect to Signup/Login
If you're not logged in, youβll be automatically redirected to the /signup page
If you already have an account, click βAlready have an account?β to switch to /login
π 2. Login with Credentials
Enter your registered email and password
A JWT token is securely stored in an HTTP-only cookie
π 3. Access Protected Pages
Once authenticated, you can access:
β
/profile β View and update your profile with a profile picture (Cloudinary integration)
β
/home β A protected page (currently minimal content)
π Trying to access these routes without authentication will auto-redirect you to /signup
```
## License
This project is licensed under the MIT License - see the [LICENSE](./LICENSE) file for details.
## Environment Variables
To run this project, you will need to add the following environment variables to your Backend .env file
`PORT`=5000
`MONGO_URI`
`JWT_SECRET`
`NODE_ENV`=development
`CLOUDINARY_CLOUD_NAME`
`CLOUDINARY_API_KEY`
`CLOUDINARY_API_SECRET`
## π Tech Stack
**Client:** React.js, Zustand, Axios, CSS
**Server:** Node.js, Express.js, MongoDB, Cloudinary
**Authentication:** JWT (via HTTP-only Cookies)
**Tools & Services:** Vite, dotenv, Cloudinary, Mongoose
## π¨βπ» Author
- [@Jaivardhan7773](https://github.com/Jaivardhan7773) β Full-Stack Web Developer
π Passionate about building scalable web apps with MERN stack & modern tools.
π» Loves React, Node.js, Zustand, MongoDB & experimenting with new tech.
π§ Always learning. Always building. Always leveling up.
### π Connect with me
- πΌ [LinkedIn](https://www.linkedin.com/in/jaivardhan7773)
- π [GitHub](https://github.com/Jaivardhan7773)
- π· [Instagram](https://www.instagram.com/jaivardhan7773_)
## πΈ Screenshots
### π Login Page

### π Sign Up Page

### π€ Profile Page (Protected)

### π Home Page (Protected)

## π Features
- π JWT-based authentication with HttpOnly cookies
- πΈ Profile image upload using Cloudinary
- βοΈ Protected routes (Home & Profile pages)
- π Auto-redirect to Sign Up/Login based on auth state
- π§ Zustand for global state management
- π Default dark theme UI
- π± Fully responsive design for all devices
- π§ Dynamic Navbar based on authentication