Skip to content

Commit 58e970a

Browse files
committed
Commit
1 parent 72f3dd7 commit 58e970a

File tree

1 file changed

+132
-0
lines changed

1 file changed

+132
-0
lines changed

README.md

Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
# Secure File Sharing 📁🔒
2+
3+
![Secure File Sharing](https://img.shields.io/badge/Download%20Latest%20Release-Click%20Here-blue?style=for-the-badge&logo=github)
4+
5+
Welcome to the **Secure File Sharing** repository! This application provides a robust solution for sharing files securely over the internet. With built-in AES encryption, user authentication via JWT tokens, and virus scanning, your files remain safe and protected at all times.
6+
7+
## Table of Contents
8+
9+
- [Features](#features)
10+
- [Technologies Used](#technologies-used)
11+
- [Installation](#installation)
12+
- [Usage](#usage)
13+
- [How It Works](#how-it-works)
14+
- [Contributing](#contributing)
15+
- [License](#license)
16+
- [Contact](#contact)
17+
18+
## Features
19+
20+
- **AES Encryption**: Files are encrypted using AES-256, ensuring that only authorized users can access the data.
21+
- **JWT Authentication**: Users must authenticate with a JWT token before storing or accessing files.
22+
- **Virus Scanning**: Each file is checked for viruses to enhance security.
23+
- **User-Friendly Interface**: Designed with usability in mind for seamless file sharing.
24+
- **Cross-Platform Support**: Works on various operating systems, making it accessible to everyone.
25+
26+
## Technologies Used
27+
28+
- **AES**: Advanced Encryption Standard for secure file encryption.
29+
- **JWT**: JSON Web Tokens for user authentication.
30+
- **Node.js**: Server-side platform for building the application.
31+
- **Express**: Web framework for Node.js to create the API.
32+
- **MongoDB**: NoSQL database for storing user data and file metadata.
33+
- **Multer**: Middleware for handling file uploads.
34+
- **ClamAV**: Antivirus engine for scanning files.
35+
36+
## Installation
37+
38+
To get started with Secure File Sharing, follow these steps:
39+
40+
1. **Clone the repository**:
41+
```bash
42+
git clone https://github.com/jacobPRO123/secure_file_sharing.git
43+
```
44+
45+
2. **Navigate to the project directory**:
46+
```bash
47+
cd secure_file_sharing
48+
```
49+
50+
3. **Install dependencies**:
51+
```bash
52+
npm install
53+
```
54+
55+
4. **Set up environment variables**: Create a `.env` file in the root directory and add the following variables:
56+
```
57+
PORT=3000
58+
JWT_SECRET=your_jwt_secret
59+
MONGODB_URI=your_mongodb_uri
60+
```
61+
62+
5. **Start the application**:
63+
```bash
64+
npm start
65+
```
66+
67+
## Usage
68+
69+
Once the application is running, you can interact with it via the API or the front-end interface.
70+
71+
### API Endpoints
72+
73+
- **POST /api/auth/login**: Authenticate a user and receive a JWT token.
74+
- **POST /api/files/upload**: Upload a file after authentication.
75+
- **GET /api/files/:id**: Download a file using its ID.
76+
77+
For more detailed usage, refer to the [API Documentation](https://github.com/jacobPRO123/secure_file_sharing/wiki/API-Documentation).
78+
79+
## How It Works
80+
81+
### File Upload Process
82+
83+
1. **User Authentication**: Users log in using their credentials. If successful, they receive a JWT token.
84+
2. **File Upload**: The user uploads a file, which is then encrypted using AES-256.
85+
3. **Virus Scanning**: The file is scanned for viruses using ClamAV.
86+
4. **Storage**: If the file passes the virus scan, it is stored in MongoDB with its metadata.
87+
88+
### File Download Process
89+
90+
1. **User Authentication**: The user must provide a valid JWT token to access files.
91+
2. **File Retrieval**: The application retrieves the encrypted file from the database.
92+
3. **Decryption**: The file is decrypted using AES-256 before being sent to the user.
93+
94+
## Contributing
95+
96+
We welcome contributions to enhance the Secure File Sharing application. If you want to contribute, please follow these steps:
97+
98+
1. Fork the repository.
99+
2. Create a new branch:
100+
```bash
101+
git checkout -b feature/YourFeature
102+
```
103+
3. Make your changes and commit them:
104+
```bash
105+
git commit -m "Add your message here"
106+
```
107+
4. Push to your branch:
108+
```bash
109+
git push origin feature/YourFeature
110+
```
111+
5. Create a pull request.
112+
113+
## License
114+
115+
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
116+
117+
## Contact
118+
119+
For any questions or support, feel free to reach out:
120+
121+
- **Email**: [email protected]
122+
- **GitHub**: [jacobPRO123](https://github.com/jacobPRO123)
123+
124+
For the latest releases, visit [here](https://github.com/jacobPRO123/secure_file_sharing/releases). You can download the latest version and execute it to start sharing files securely.
125+
126+
## Conclusion
127+
128+
Secure File Sharing is a powerful tool for anyone looking to share files safely and efficiently. With strong encryption, user authentication, and virus scanning, you can trust that your files are secure. Explore the repository, contribute, and enjoy secure file sharing!
129+
130+
![Secure File Sharing](https://img.shields.io/badge/Download%20Latest%20Release-Click%20Here-blue?style=for-the-badge&logo=github)
131+
132+
For further updates, check the "Releases" section.

0 commit comments

Comments
 (0)