Skip to content

kartik0905/file-uploads-via-QR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📂 FileDrop

Self-Hosted, Cross-Platform File Sharing over Local Wi-Fi

Node.js Express React Socket.IO Multer QR Code


📌 Overview

FileDrop is a private, cross-platform file sharing tool that lets you transfer files from your phone to your computer over your local Wi-Fi using a QR code.
Think of it as a self-hosted AirDrop that works on any device.


🚀 How It Works

  1. Start the Node.js server on your laptop.
  2. Open the dashboard in your browser — it shows a QR code for your local IP.
  3. Scan the QR code with your phone’s camera.
  4. A simple upload page opens in your phone’s browser (no app required).
  5. Select files → they are sent directly to your laptop.
  6. Files appear on the dashboard instantly via WebSockets.
  7. Download with one click → saved to your Downloads folder.

✨ Features

  • 🔐 Privacy-First → All transfers stay inside your local network.
  • 🧹 Temporary Storage → Files auto-delete after download.
  • Real-Time Updates → Instant uploads with Socket.IO.
  • 🌍 Cross-Platform → Works with Windows, macOS, Linux, iOS, Android.
  • 📷 No App Needed → Just scan & upload from your phone browser.

🛠️ Tech Stack

Layer Tech Used
Backend Node.js, Express
File Uploads Multer
Realtime Socket.IO
Dashboard React
Upload Page HTML + Vanilla JS
QR Codes qrcode (server), qrcode.react (client)

📂 Folder Structure

FileDrop/
├── .gitignore
├── README.md
├── assets
    └── Screenshot 2025-09-13 at 6.25.44 PM 1.png
├── client
    ├── README.md
    ├── package-lock.json
    ├── package.json
    ├── public
    │   ├── favicon.ico
    │   ├── index.html
    │   ├── logo192.png
    │   ├── logo512.png
    │   ├── manifest.json
    │   └── robots.txt
    └── src
    │   ├── App.css
    │   ├── App.js
    │   ├── App.test.js
    │   ├── index.css
    │   ├── index.js
    │   ├── logo.svg
    │   ├── reportWebVitals.js
    │   └── setupTests.js
└── server
    ├── .gitignore
    ├── index.js
    ├── mobile-upload.html
    ├── package-lock.json
    └── package.json

⚡ Quick Start

1️⃣ Clone the repo

git clone https://github.com/kartik0905/filedrop.git
cd filedrop

2️⃣ Install dependencies

cd server && npm install
cd ../client-dashboard && npm install

3️⃣ Run the backend

cd server
npm start

4️⃣ Run the dashboard

cd client-dashboard
npm start

5️⃣ Access

  • Open http://localhost:3000 on your laptop.
  • Scan the QR code with your phone to open the upload page.

📸 Demo

Screenshot


🧹 Cleanup

  • Files auto-delete after download.
  • Clear uploads/ manually if needed.

🔮 Future Enhancements

  • 🔑 Password-protected uploads
  • 📦 Batch downloads (zip multiple files)
  • 📲 Drag & Drop dashboard uploads
  • 🌐 LAN-wide discovery (no QR needed)

🤝 Contributing

Pull requests are welcome! Open an issue to discuss new features or fixes.


📜 License

MIT License © 2025 Kartik Garg

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published