The Encrypted File Sharing Service is a peer-to-peer file sharing application that prioritizes secure data transfer. It allows users to share files with end-to-end encryption, ensuring that shared data is accessible only to intended recipients.
- Password Protection: Users can set passwords for their files, adding an extra layer of security.
- Encryption: Utilizes bcrypt for robust encryption, safeguarding file contents during transfer.
- User-Friendly Interface: Designed for ease of use, ensuring a smooth file-sharing experience.
- Uploading a File: Choose a file to share, set a password for encryption, and upload it to the service.
- Sharing: Once uploaded, a unique link is generated which can be shared with the recipient.
- Downloading: The recipient uses the link to download the file. The correct password must be entered to access and decrypt the file.
- EJS: A templating language used to generate HTML with plain JavaScript. It's utilized for creating dynamic views in the application.
- Express: A fast, unopinionated, minimalist web framework for Node.js, used for handling server-side logic and routing.
- Mongoose: A MongoDB object modeling tool designed to work in an asynchronous environment. It's used for database operations.
- Multer: A Node.js middleware for handling
multipart/form-data
, primarily used for uploading files. - Bcrypt: A library to help hash passwords, providing a secure way to store and compare user passwords.
- Dotenv: A zero-dependency module that loads environment variables from a
.env
file intoprocess.env
, making it easier to manage sensitive configuration options.
To set up the project on your local machine, follow these steps:
- Clone the repository:
git clone https://github.com/jals413/encrypted-file-sharing-service.git
- Navigate to the directory:
cd encrypted-file-sharing-service
- Install dependencies:
npm install
- Start the server:
npm start
- Access the application via
http://localhost:3000
(or the configured port).
We welcome contributions of all forms. Here's how you can contribute:
- Reporting Issues: Use the Issue Tracker to report bugs or suggest enhancements.
- Submitting Pull Requests: For code contributions, please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b my-new-feature
). - Make your changes and test them.
- Commit your changes (
git commit -am 'Add some feature'
). - Push the branch (
git push origin my-new-feature
). - Open a pull request.
This project is made available under the MIT License. For more details, see the LICENSE.md file.