Welcome to AuthVault! AuthVault is a robust web application crafted using the MERN stack — MongoDB, Express, React, and Node.js. This dynamic site offers seamless authentication capabilities, allowing users to sign up, sign in securely, and sign out. It includes Google's OAuth functionality and delete user functionality. Access to protected routes is exclusively granted to authenticated users so that users can update their credentials such as profile picture, username, email, and password.
- Frontend: 🌐React.js, React Router, Tailwind CSS
- Backend: ⚙️Node.js, Express
- Database:🧑💻 MongoDB
- State Management: 🧑💻Redux Toolkit
- Authentication: 🔐JSON Web Tokens (JWT), Google OAuth
- Storage: 🏬Firebase Storage (for profile images)
- ➕ Sign up, sign in, and sign out securely
- 🔒 Google OAuth integration for seamless sign-ins
- ✏️ Update profile information (username, email, password, profile picture)
- ❌ Delete user accounts safely
- 🔒 Access to protected routes for authenticated users
- 🔄 Efficient state management with Redux Toolkit
- 🔄 Robust CRUD operations with MongoDB
- 🎨 Mobile responsive
- Frontend Setup: Set up React.js and integrated Tailwind CSS. Used React Router for client-side routing and created authentication pages.
- Authentication Mastery: Implemented email and password authentication with JWT and integrated Google OAuth for easier sign-ins.
- State Management: Utilized Redux Toolkit for efficient state management.
- Profile Management: Securely managed user profiles, including updating profile information and handling profile picture uploads.
- Account Deletion: Added delete user accounts safely with proper token checks.
- CRUD Operations: Perform Create, Read, Update, and Delete operations using MongoDB.
- Password Encryption: Encrypted user's passwords in MongoDB Atlas using bcryptjs library.
Contributions are welcome! If you would like to help improve AuthVault or add new features, please fork the repository and submit a pull request. .
AuthVault is crafted with 💚 by Amol. Feel free to reach out for any questions or suggestions!