This is a comprehensive authentication system built with React, NestJS, JWT, and Passport for user authentication. It utilizes a MySQL database with Prisma ORM for data management, and incorporates various frontend libraries like Bootstrap, Zustand, Formik, and react-confetti for a dynamic user experience.
- JWT-based authentication with Passport.js for secure user login and registration.
- User sessions and authentication state management with Zustand.
- Responsive UI using React Bootstrap.
- Form handling with Formik for smoother user input and validation.
- Email notifications via EmailJS.
- Fun confetti effect using react-confetti for user interactions (e.g., on successful registration).
- React: JavaScript library for building the user interface.
- Bootstrap: Provides responsive, mobile-first design components.
- React-Bootstrap: Integrates Bootstrap components into React.
- Zustand: Simplified global state management for handling authentication state.
- Formik: For managing form state, validation, and submission.
- react-confetti: Fun confetti effect for successful actions.
- EmailJS: Service for sending email notifications directly from the client-side.
- NestJS: Node.js framework used for building the backend API.
- JWT (JSON Web Tokens): For stateless authentication.
- Passport.js: Middleware for handling user authentication.
- Prisma: ORM for interacting with the MySQL database.
- MySQL: Relational database for storing user data.
Make sure you have the following installed on your machine:
- Node.js: v16 or higher.
- MySQL: Local or remote MySQL database.
- Docker & Docker Compose (Optional): For running MySQL and the application in containers.