https://github.com/doctorpok42/fastdrop
The easiest way to transfer files across devices
https://github.com/doctorpok42/fastdrop
airdrop data-transfer file-sharing material-ui nextjs peer-to-peer react-dropzone sass socket-io transfer ts
Last synced: about 1 month ago
JSON representation
The easiest way to transfer files across devices
- Host: GitHub
- URL: https://github.com/doctorpok42/fastdrop
- Owner: DoctorPok42
- License: mit
- Created: 2023-09-30T16:05:42.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-04T17:21:00.000Z (almost 2 years ago)
- Last Synced: 2025-01-10T09:20:25.071Z (over 1 year ago)
- Topics: airdrop, data-transfer, file-sharing, material-ui, nextjs, peer-to-peer, react-dropzone, sass, socket-io, transfer, ts
- Language: TypeScript
- Homepage: https://fastdrop.doctorpok.io
- Size: 292 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Fastdrop


## The easiest way to transfer files across devices
Fastdrop is a web application that allows users to easily transfer files between devices. It uses a peer-to-peer connection, so no files are ever stored on a server. This makes it a secure and private way to share files.
## Features
- 🔐 **Privacy levels** - Users can choose to share files with everyone, only close people, or only people on the same network
- 👥 **Rooms** - Users can create rooms to share files with multiple people at once
- 📁 **Drag and drop** - Users can drag and drop files to transfer
- ✅ **Transfer confirmation** - Users must confirm the transfer before files are sent to ensure that they are not sent to the wrong device
- 🔒 **Secure** - Files are transferred directly between devices, so no files are ever stored on a server
- 📦 **Chunked file transfer** - Large files are split into smaller chunks and sent one by one to ensure reliable transfer
- ⚡ **Fast** - Files are transferred quickly and efficiently
- 🌐 **Cross-platform** - Works on any device with a web browser
- 🆓 **Free** - Fastdrop is completely free to use
- 🛠️ **Open source** - Fastdrop is open source, so anyone can contribute to the project
- 📱 **Mobile friendly** - Fastdrop is optimized for mobile devices, so users can easily transfer files on the go
- 🚀 **Docker** - Fastdrop can be easily deployed using Docker for a hassle-free setup
## Docker
```dockerfile
docker run -d -p 3000:3000 --name fastdrop-frontend doctorpok/fastdrop:frontend-latest
docker run -d -p 8000:8000 --name fastdrop-backend doctorpok/fastdrop:backend-latest
```
## Installation
1. Clone the repository
```bash
git clone git@github.com:DoctorPok42/FastDrop.git
```
2. Install dependencies
```bash
cd frontend && npm install && cd ../server && npm install
```
3. Add .env file
```bash
cd frontend && touch .env
```
4. Add the following variables to the .env file
```bash
URL_SERVER=http://localhost:3001
```
5. Run the server and client in development mode with hot module replacement
```bash
cd frontend && npm run dev
cd server && npm run build && npm start
```
## Usage
1. Go to [http://localhost:3000](http://localhost:3000)
2. Connect a second device
3. Drag and drop files to transfer them
4. Enjoy!
## Tech
- [Next.js](https://nextjs.org/)
- [Socket.io](https://socket.io/)
- [React Dropzone](https://react-dropzone.js.org/)
- [Unique Names Generator](https://www.npmjs.com/package/unique-names-generator)
- [TS](https://www.typescriptlang.org/)
- [SASS](https://sass-lang.com/)
- [Material UI](https://material-ui.com/)
## Folder structure
- **components** - Contains all the components used in the project
- **pages** - Contains all the pages used in the project
- **public** - Contains all the static files used in the project
- **styles** - Contains all the styles used in the project
- **server** - Contains the server code
## License
[MIT](https://github.com/DoctorPok42/HangMan/blob/main/LICENSE)