Welcome to the Secure Document Sharing Portal. This project is designed to provide a highly secure environment for uploading, sharing, and managing documents with end-to-end encryption. The portal ensures that all documents are encrypted on the client side before being uploaded to the server, where they are securely stored and managed.
https://encrpyt-share-vercel.vercel.app/
https://drive.google.com/file/d/1pKrnmRxuWLPBKV7M082IlUBu14NH_oq1/view?usp=sharing
- End-to-End Encryption: All documents are encrypted before being sent to the server.
- Secure Upload and Download: Users can securely upload and download their documents.
- Document Sharing: Users can share documents with other users while maintaining control over access.
- Activity Logs: Detailed logs of user activities for better auditing and tracking.
- Node.js
- npm (Node Package Manager)
- prism and postgres database
-
Clone the Repository
git clone https://github.com/your-username/secure-document-sharing-portal.git cd secure-document-sharing-portal
-
Install Dependencies
npm install
-
Set Up Environment Variables Create a
.env
file in the root directory and add the following variables:MongoDB=your-mongo-endpoint SQL=your-postgres-key
-
Run the Application
npm start
- Navigate to the upload page.
- Select the document you want to upload.
- Set the access start and end dates using the provided date pickers.
- Click the "Upload" button.
- Navigate to the document you want to share.
- Click the "Share" button.
- Enter the user ID of the person you want to share the document with.
- Set the access period if needed.
- Click "Share".
- Navigate to the Activity Logs page.
- View the list of user actions including uploads, downloads, and shares.
The backend is built using Node.js and integrates with postgres DB to store documents, user metadata, and activity logs. The key functionalities include:
- Encryption: Documents are encrypted using AES before being sent to the server.
- Access Control: checks access periods and user permissions before granting access to documents.
The frontend is built using React and provides a user-friendly interface for interacting with the portal. Key components include:
- Upload Form: Allows users to upload documents and set access periods.
- Share Drawer: Enables users to share documents with other users.
- Activity Log Viewer: Displays user activity logs for monitoring and auditing.