GraphiLock is an innovative graphical password authentication system designed to enhance security by using images as a password. This project leverages Unsplash to fetch images for creating graphical passwords.
- Graphical Password Authentication: Users can set and authenticate using images.
- Responsive Design: Optimized for both desktop and mobile views.
- Image Selection: Users can choose images from a dynamically fetched set.
- Pattern Validation: Ensures users select images in the correct sequence for authentication.
- Forgot Password: Option available for users to reset their password.
- Frontend: React, Tailwind CSS
- Backend: Node.js, Express
- Database: MongoDB
- Image Source: Unsplash
- State Management: Redux
- Toast Notifications: react-hot-toast
- Node.js
- MongoDB
git clone https://github.com/Rahilsamani/GraphiLock.git
cd graphiLock
npm install
cd client
npm install
- Signup: Create a new account by providing a username, category, and password.
- Set Graphical Password: Select images from the provided set to create your graphical password.
- Login: Authenticate using your username, category, and graphical password.
- Backend: The backend code is located in the root directory. It includes routes for user authentication and image fetching from Unsplash.
- Frontend: The frontend code is in the
client
directory. It includes components for login, signup, and graphical password selection.
server.js
: Main server file.routes/auth.js
: Authentication routes.routes/image.js
: Routes to fetch images from Unsplash.client/src/components
: React components.client/src/redux
: Redux setup and slices.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b feature/your-feature
. - Make your changes and commit them:
git commit -m 'Add some feature'
. - Push to the branch:
git push origin feature/your-feature
. - Open a pull request.
- Unsplash for providing free images.
- React, Node.js, Express, and MongoDB for the tech stack.
- react-hot-toast for toast notifications.
If you have any questions or feedback, please feel free to contact me at [email protected].