A modern, secure user authentication and management platform built with the MERN stack, featuring aws cloud deployment.
- π Secure Authentication - JWT-based login/register with password strength validation
- π₯ User Management - Real-time user dashboard with search and filtering
- πΈ Profile Images - Cloudinary integration with automatic compression
- π Dark Mode - Persistent theme preference across sessions
- π± Responsive Design - Mobile-first approach with Tailwind CSS
- π Advanced Filters - Search by name, email, department, and gender
- β‘ Fast & Scalable - Deployed on AWS EC2 and Vercel
- React - UI library
- Vite - Build tool
- Tailwind CSS - Styling
- Framer - Animation
- React Router - Navigation
- Axios - HTTP client
- Node.js - Runtime
- Express.js - Web framework
- MongoDB Atlas - Database
- JWT - Authentication
- Bcrypt - Password hashing
- Cloudinary - Image storage
- AWS EC2 - Backend hosting
- Vercel - Frontend hosting
- PM2 - Process management
- Nginx - Reverse proxy
- Node.js 18+
- MongoDB Atlas account
- Cloudinary account
- Clone the repository
git clone https://github.com/Mubeen-Channa/user-registry-fullstack.git
cd user-registry-fullstack- Setup Backend
cd server
npm installCreate .env file:
PORT=8080
MONGO_URI=your_mongodb_uri
JWT_SECRET=your_jwt_secret
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
EMAIL_USER=your_email
EMAIL_PASS=your_email_passwordStart server:
npm run dev- Setup Frontend
cd client
npm installCreate .env.development:
VITE_API_URL=http://localhost:8080Start frontend:
npm run devVisit http://localhost:5173 π
POST /api/auth/register # Register new user
POST /api/auth/login # Login userGET /api/users/all # Get all users
PUT /api/users/profile-image # Update profile image// Frontend compresses to 400x400, 70% quality
// Backend stores to Cloudinary CDN
// Result: 95% smaller database size// Token includes: userId, email, role
// 7-day expiration
// Stored in localStorage// Checks authentication before allowing access
// Role-based access control (Male/Female)# SSH into EC2
ssh -i your-key.pem ubuntu@your-ip
# Clone & setup
git clone <repo>
cd server
npm install
pm2 start src/index.js# Connect GitHub repo to Vercel
# Set environment variables
# Deploy automatically on pushContributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is open source and available under the MIT License.
- GitHub: @Mubeen-Channa
- Portfolio: mubeenfolio.site
- MongoDB Atlas for database hosting
- Cloudinary for image CDN
- Vercel for frontend deployment
- AWS for backend infrastructure
β Star this repo if you found it helpful!
