QuickDrop is a secure, fast, and serverless file transfer application. It enables direct file sharing between devices using WebRTC, ensuring privacy and efficiency without relying on centralized servers.
- Serverless File Transfer: Files are transferred directly between devices using WebRTC.
- Secure: End-to-end encryption ensures your files remain private.
- Fast: Peer-to-peer connections enable high-speed file transfers.
- Cross-Platform: Works on any device with a modern web browser.
- Simple UI: Intuitive interface for creating and joining transfer sessions.
QuickDrop consists of two main components:
- Client: A React-based web application for users to create and join file transfer sessions.
- Server: A Node.js server that facilitates WebRTC signaling and session management using Socket.io and Redis.
- Node.js (v16 or higher)
- Redis server
- MongoDB (optional, for database integration)
-
Navigate to the
server
directory:cd server
-
Install dependencies:
npm install
-
Configure environment variables: Create a
.env
file in theserver
directory and add the following:PORT=3000 REDIS_USERNAME=default REDIS_HOST=localhost REDIS_PORT=6379 REDIS_PASSWORD=
-
Start the server:
npm start
-
Navigate to the
client
directory:cd client
-
Install dependencies:
npm install
-
Configure environment variables: Create a
.env
file in theclient
directory and add the following:VITE_SIGNALING_SERVER_URL=http://localhost:3000
-
Start the client:
npm run dev
-
Open your browser and navigate to
http://localhost:5173
.
- Create a Session: Upload a file and generate a unique session code.
- Join a Session: Enter the session code to connect with the sender.
- Transfer Files: Files are transferred directly between devices.