This project is a modern React application designed for user authentication. It features sign-up and login forms, password strength indicators, and toast notifications using React Toastify. This app was built using Vite for fast development and includes responsive design for a great user experience across devices.
- React: A JavaScript library for building user interfaces.
- Vite: A fast, next-generation frontend build tool.
- Formik: A library for handling form state and validation in React.
- Yup: A JavaScript schema builder for value parsing, validation, and sanitation.
- React Toastify: A toast notifications library for React applications.
- CSS Modules: For modular, scoped CSS styling.
To run this application locally, follow these steps:
- Clone the Repository:
git clone https://github.com/Kxrishx03/Forms-project.git
- Navigate to the Project Directory:
cd Forms-project - Install Dependencies:
npm install
- Start the Development Server:
npm run dev
- Access the Application on browser
- React was chosen for its component-based architecture and strong ecosystem.
- Vite was selected for faster builds and an optimized development experience.
- Formik was used for handling form state and validations due to its simplicity and robust API.
- Yup was integrated for declarative validation schemas, ensuring consistent validation rules.
- Designed to give users immediate feedback about password quality.
- Strength checks include:
- Length
- Uppercase letters
- Lowercase letters
- Numbers
- Special characters
- React Toastify was used for toast notifications due to its flexibility and ease of use.
- React Router enables seamless navigation between sign-up and login pages.
- CSS modules and a global CSS file provide a combination of scoped and shared styles for consistency.
- Users are expected to provide valid email addresses during sign-up.
- Passwords must meet the strength criteria:
- Minimum of 8 characters
- Includes uppercase, lowercase, numeric, and special characters.
- The "Remember Me" feature only remembers the email, not the password, for security reasons.