- User authentication with email and password
- Secure password hashing using bcrypt
- User registration with email verification
- Forgot password functionality with email reset link
- Session management with JWT tokens
- Role-based access control for different user types
- User profile management with update and delete functionality
- Responsive design for mobile and desktop devices
- Error handling for invalid inputs and server errors
- Logging for tracking user activities and debugging
- Node.js
- Express.js
- MongoDB
- Mongoose
- JWT
- Bcrypt
- Nodemailer
- Bootstrap
- HTML/CSS
- Clone the repository
- Install dependencies using
npm install
- Set up environment variables in a
.env
file - Run the server using
npm start
- Register a new user account
- Log in with your credentials
- Update your profile information
- Log out from the account
- Forgot password? Use the reset link sent to your email
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.