A Password Manager project created using MERN stack
- ReactJS - Frontend framework
- Redux - State management library
- Redux Thunk - Middleware which allows action creators to return a function
- React Router - Library for general routing & navigation
- React Hook Form - Library for flexible & extensible forms
- Yup - Form validation tool
- Styled Components - Component-level styles
- Axios - Library used to make HTTP requests from Node.js
- Node.js - Runtime environment for JS
- Express.js - Node.js framework, makes process of building APIs easier & faster
- MongoDB - Open source NoSQL database management program
- JSON Web Token - A standard to secure/authenticate HTTP requests
- Bcrypt.js - For hashing passwords
- Dotenv - To load environment variables from a .env file
- Authentication (login/register w/ email & master-password/Google OAuth)
- Generation of random, strong passwords with up to 128 symbols
- Set of regular expressions to calculate a password entropy
- CRUD credentials with platform, username & password
- Toast notifications for actions: copying, removing credentials etc.
- Content loaders for fetching processes
- Proper responsive UI for all screens
Navigate to the directory of choice and clone the project
git clone https://github.com/tmneth/password-manager.git
To configure the server run the following command from the root directory
cd server && npm install
Create .env file and configure environmental variables as follows
CONNECTION_URI=<your MongoDB URI>
SECRET_KEY=<your secret key for hashing passwords>
Once all the dependencies were installed start the server
npm run start
To configure the client run the following command from the root directory
cd client && npm install
Create .env file and configure environmental variables as follows
REACT_APP_GOOGLE_CLIENT_ID=<your Google OAuth client ID>
REACT_APP_SERVER_ACCESS=<your server URL>
Once all the dependencies were installed start the client
npm run start