The Security-Vault project leverages the power of the MERN stack (MongoDB, Express, React, Node.js) to provide a robust and secure platform for managing todo lists. It features JWT authentication for secure access and protected routes to ensure that only authenticated users can access certain functionalities.
Explore Our SecureVault🔒 – a powerful password manager and note storage app built with MERN, designed for ultimate privacy and top-notch security!🛡️ Your passwords and notes are encrypted 🔐 using advanced cipher text and Base64 encryption🚀, accessible only with your personal PIN🔑. Even we can’t decrypt your data!
If you lose your PIN,
- Password Encryption: Encrypts user passwords using bcrypt to ensure secure storage in the database.
- Note Encryption: Encrypts user notes using AES encryption to ensure secure storage in the database.
- Base64 Encryption: Encrypts user notes using Base64 encryption to ensure secure storage in the database.
- PIN Protection: Requires users to set a PIN for accessing their encrypted passwords and notes, adding an extra layer of security.
- MERN Stack: Leverages MongoDB, Express.js, React.js, and Node.js for a robust full-stack JavaScript solution.
- JWT Authentication: Implements JSON Web Tokens to manage user sessions securely.
- Protected Routes: Restricts access to certain functionalities to authenticated users only.
- Material UI (MUI): Utilizes MUI for an attractive and responsive user interface, enhancing usability and accessibility.
- Responsive Design: The UI adapts to various screen sizes, ensuring a seamless experience on desktops, tablets, and smartphones.
- Toaster Notifications: Incorporates toast notifications for real-time feedback on user actions, such as creating, updating, or deleting todos.
- Frontend: React.js, React Router, Axios, Material UI, Vite.js
- Backend: Express.js, MongoDB, Mongoose, JWT, Bcrypt, Cors, Dotenv, cypher-js
- Development Tools: ESLint, Prettier, Concurrently, Nodemon, Vite, Insonmia
To get this project up and running on your local machine, follow the steps below for both the frontend (React) and backend (Express).
- Node.js and npm (Node Package Manager) installed on your system.
-
Navigate to the backend directory:
cd Security-Vault/server -
Install the required packages:
npm install
-
Create a
.envfile in the root of theserverdirectory and add the following environment variables:- MONGO_URI = "mongodb+srv://username:<password>@cluster0.nbgt3.mongodb.net/?retryWrites=true&w=majority" - SECRET_KEY = "i=UGrwJW8Bdp;twly82YdE=lwl!kav;lguCY/m" (EXAMPLE) - PASSWORD_KEY = "7Zrdf1sxdUGrwJW8BdGrwJl!kaE=lyptF0Rfd" (EXAMPLE)
Note: Replace the
MONGO_URIwith your MongoDB connection string and generate a uniqueSECRET_KEYandPASSWORD_KEYfor security purposes. -
Start the server:
npm run dev
-
Navigate to the frontend directory:
cd Security-Vault/client -
Install the required packages:
npm install
-
Start the development server:
npm run dev
- Make sure your frontend should work on port 5173 and backend on 3000, otherwise you need to make changes in backend index.js and need to provide the new frontend url in allowedOrigins. If you are using different port for backend then you need to change the AuthUser.js baseURL in frontend.
- If you encounter any issues while running the application, please feel free to open an issue on this repository. We will be happy to help you troubleshoot the problem.
Once the backend and frontend are set up, you can access the application by navigating to http://localhost:5173 in your web browser. You can then register a new account or log in with the default credentials:
- Aman Singh - @amankrs21
This project is private and not licensed.
Note: This is a project created for educational purposes and is not intended for commercial use.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.