Skip to content

paradox-solver/DeviceBridge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

19 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

DeviceBridge πŸ“±πŸŒ‰πŸ’»

License Python 3.10+ Flask >=2.0 Code style: black Platform: Windows | Linux Self-signed SSL

DeviceBridge is a local web application for secure and convenient file and data sharing between PC and mobile devices, only using the default browser. πŸ”—πŸ“±πŸ’»

  • Your PC and mobile must be connected to the same network.
  • No USB cable needed.
  • No bluetooth needed.
  • No additional software or app needed.
  • No administrative privileges needed.
  • No jailbreak (iOS) or root (Android) required. πŸš«πŸ”“
  • No privacy exclosure risks!

Ensuring seamless flow between PC and mobile devices, DeviceBridge also ease your life by providing the following interesting features:

  • Generate logo embedded QR code
  • Scan QR code using your PC, when your want to open the link on PC
  • Sign your name using your finger, instead of mouse, without an apple pencil
  • Send photos from phone to PC without a USB cable
  • Save documents on your phone, using it as a wireless hard drive. This is especially attractive to iPhone users.
  • More to explore...

Main Functions ✨

DeviceBridge can transfer text, (drawing) images, and files between your PC and mobile device in a fast and convenient way. It supports most hardware platforms and operating systems, including PC with Windows or Linux, iphone, iPad, and Android devices. The main features include:

Text transfer via QR code scanning πŸ“„βž‘οΈπŸ“±

  • QR Code Generator: Generate logo-embedded QR codes Locally. No more online QR generators! πŸ”³
  • Remote Scan: Use your phone to scan QR codes and send the result back to your PC. πŸ“²

Image transfer via drawing or signing on mobile device 🎨✍️

  • Draw & Sign: Draw or sign on your device and transfer the image to your PC. πŸ–ΌοΈ

File transfer between PC and mobile device πŸ“πŸ”„

  • File Share: Transfer files from your PC to your mobile device via browser. πŸ“€
  • File Fetch: Transfer files from your mobile device to your PC. πŸ“₯

Installation βš™οΈ

Requirements πŸ“‹

  • Windows, Linux, or macOS πŸ–₯️
  • Python 3.7 or higher (recommended: Python 3.10+) 🐍
  • pip (Python package manager) πŸ“¦
  • OpenSSL for SSL certificates (enabling https transfers)
  • (Optional) Potrace for saving drawing as vector.

Clone & Install ⬇️

Clone the repository and install all dependencies:

git clone https://github.com/paradoxsolver1997/DeviceBridge.git
cd DeviceBridge
pip install -r requirements.txt

Run the Application ▢️

Start the desktop app:

python main.py
  • By default, the local web server is closed. Configrue it in "Server Setup" and click "Start Server". πŸ–±οΈ
  • Check help for how to use the app. ℹ️

Automatic SSL keys Setup πŸ”

The remote scan requires HTTPS protocol to access cameras. On starting of the App, SSL keys are automatically configured. But OpenSSL must be previously installed with environment variable correctly configured.

Installing Potrace (Optional)

Potrace is a tool that transforms a binary bitmap into vector. It is required for saving drawing or signatures as vectors. Follow the official guide to download and install Potrace.

Important: you MUST add the path of the Potrace executable to the $PATH environment variable (Windows or Linux) such that the app can find it. If successful, the Tool Check panel of the app shows a tick.

If Potrace is not installed, you can still use the other features of DeviceBridge. You can save drawing or signatures only as bitmaps.

Usage

Check Help & Documentation for the usage of this app.

File Structure πŸ—‚οΈ

DeviceBridge/
β”œβ”€β”€ main.py                # Main entry, starts the Flask server
β”œβ”€β”€ requirements.txt       # Python dependencies
β”œβ”€β”€ README.md              # Project documentation
β”œβ”€β”€ LICENSE                # Open source license
β”œβ”€β”€ static/                # Frontend static resources
β”‚   β”œβ”€β”€ index.html         # Main entry page (dashboard/portal)
β”‚   β”œβ”€β”€ setup.html         # Certificate setup guide
β”‚   β”œβ”€β”€ html/                # JavaScript files for each page
β”‚   β”‚   β”œβ”€β”€ help.html          # User help and documentation
β”‚   β”‚   β”œβ”€β”€ scan.html          # Remote scan page (scan QR codes, send result to PC)
β”‚   β”‚   β”œβ”€β”€ share.html         # File share page (PC to mobile file download)
β”‚   β”‚   β”œβ”€β”€ fetch.html         # File fetch page (mobile to PC file upload)
β”‚   β”‚   └── draw.html          # The draw & sign page
β”‚   β”œβ”€β”€ js/                # JavaScript files for each page
β”‚   β”‚   └── html5-qrcode.min.js
β”‚   └── css/
β”‚       └── style.css      # Global styles
└── src/                   # Backend core code
    β”œβ”€β”€ app.py             # Main application window (Tkinter)
    β”œβ”€β”€ tabs/              # Tab logic for each feature (QR, scan, share, fetch, about, etc.)
    β”œβ”€β”€ frames/            # UI frame components (title, server, tool, etc.)
    β”œβ”€β”€ libs/              # Useful functions
    └── utils/             # Utility modules (logger, server_manager, etc.)

File/Directory Explanations πŸ“

  • main.py: Entry point for the backend server and desktop app. 🏁
  • requirements.txt: Lists all Python dependencies. πŸ“¦
  • static/: Contains all frontend resources:
    • index.html: Main dashboard/portal for navigation. πŸ—ΊοΈ
    • help.html: In-app help and usage guide. πŸ†˜
    • scan.html: Scan QR codes with mobile, send result to PC. πŸ”
    • share.html: Download files from PC to mobile. πŸ“€
    • fetch.html: Upload files from mobile to PC. πŸ“₯
    • draw.html: Draw & Sign on mobile. πŸ“
    • css/style.css: Global styles for all pages. 🎨
  • src/: All backend and desktop app logic:
    • app.py: Main Tkinter application window and logic. πŸ–ΌοΈ
    • tabs/: Each feature tab (QR, scan, share, fetch, about, etc.). πŸ—‚οΈ
    • frames/: UI frame components for modular design. 🧩
    • utils/: Helper modules (logging, server management, etc.). 🧰
    • libs/: Helper functions (qr generation, etc.). 🧰

This structure ensures clear separation of backend, frontend, configuration, and utility scripts, making the project easy to maintain and extend. πŸ§‘β€πŸ’»

License πŸ“

Mozilla Public License Version 2.0

Credits πŸ™


For questions, suggestions, or contributions, feel free to open an issue or contact the author! πŸ’¬