Personal Document Vault with encryption is a secure vault where users can upload and store their personal documents with encryption for privacyand security. The vault is designed to provide a safe and private space for users to store their sensitive documents, such as financial statements, tax returns, and other important documents. The vault is accessible only to the user who created it, and access is password-protected. The vault is designed to be easy to use and navigate, with a user-friendly interface that allows users to upload and store their documents securely. The vault is also designed to be highly secure, with encryption and other security measures in place to protect the user's documents from unauthorized access.
- End-to-end encryption
- Secure document upload and storage
- User authentication and authorization
- Document search and tagging
- AWS S3 integration
- Responsive design
- Frontend: React
- Backend: Node.js, Express
- Database: MongoDB
- Storage: AWS S3
- Encryption: Crypto.js
- Authentication: JSON Web Tokens (JWT)
- Node.js (v14 or higher)
- MongoDB
- AWS Account
- npm or yarn
- First, clone the project:
- Clone the repository:
git clone https://github.com/your-username/personal-document-vault.git
- Install the dependencies:
cd personal-document-vault
npm install
# or
yarn install
- Create a .env file in the root directory and add the following environment variables:
# Backend Environment Variables
PORT=5000
MONGODB_URI=mongodb://localhost:27017/document-vault
JWT_SECRET=your_jwt_secret
AWS_ACCESS_KEY_ID=your_aws_access_key
AWS_SECRET_ACCESS_KEY=your_aws_secret_key
AWS_BUCKET_NAME=your_bucket_name
# Frontend Environment Variables
REACT_APP_API_URL=http://localhost:5000/api
- Start the development server for the frontend:
cd frontend
npm start
# or
yarn start
This will start the development server for the frontend.
- Open your browser and navigate to http://localhost:3000 to access the application.
- Start the development server for the backend:
cd backend
npm start
# or
yarn start
This will start the backend server of the application.
- Open your browser and navigate to http://localhost:5000 to access the application.
- Connect to your MongoDB database and create a new database named "document-vault".
- Connect to your AWS account/ Docker and create a new S3 bucket.
To run the tests, run the following command:
npm test
# or
yarn test
- POST /api/auth/register - Register a new user
- POST /api/auth/login - Log in a user
- GET /api/documents - Get all documents
- POST /api/documents - Upload document
- GET /api/documents/:id - Get single document
- DELETE /api/documents/:id - Delete document
- PUT /api/documents/:id - Update document
- Password hashing using bcrypt
- JWT authentication
- Document encryption using crypto.js
- Secure file storage in AWS S3
- Input validation and sanitization
- Rate limiting and throttling
- Error handling and logging
Contact me at [email protected] for any questions or help and feel free to add to the issues tab if you spot any!