π Secure File Vault
A secure file storage web application that allows users to upload, store, and download files with encryption. The system ensures that all files are encrypted before being stored and can only be accessed by the authorized user.
π Features
- π JWT Authentication (secure login system)
- π€ File Upload (supports documents, images, PDFs)
- π Encryption using AES (per-user key)
- ποΈ MongoDB Storage (stores encrypted binary data)
- π₯ Secure Download (files are decrypted on request)
- ποΈ File Deletion
- π File Listing Dashboard
- π¨ Modern Frontend UI (React)
π§ How It Works
- User logs in and receives a JWT token
- File is uploaded via frontend
- Backend converts file β byte array
- File is encrypted using AES with a user-specific key
- Encrypted file is stored in MongoDB
- When downloading:
- File is fetched
- Decrypted using the same key
- Returned to user with proper headers
π οΈ Tech Stack
Backend
- Java
- Spring Boot
- Spring Security (JWT)
- Spring Data MongoDB
Database
- MongoDB (Atlas)
Frontend
- React.js
- HTML, CSS, JavaScript
How to Run
- Clone the repository
- Run "cd backend" to navigate to backend directory
- Set up MongoDB Atlas and update connection string in
application.properties - Run "mvn spring-boot:run" to start backend
- Run "cd frontend" to navigate to frontend directory
- Run "npm install" to install dependencies
- Run "npm run dev" to start frontend