Skip to content

usmandev24/file_shifter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

File Shifter — Node.js Local File Transfer & Relay Server

Made with Node.js Platform License: GPL Status

File Shifter is a local web server for transferring and streaming files between devices on a LAN. It is implemented using only Node.js core modules and HTTP — no Express, no WebSocket libraries — and serves as an educational project to explore how request parsing, streaming, and related internals work.

Table of Contents

  • Features
  • Technical overview
  • Installation & usage
    • Windows: installation & first run
    • Manual start
  • How it works
  • License

Features

1. Direct File Sending

  • Send files directly to the main (server) PC.
  • Pause / Resume support for each file transfer.
  • Real-time progress and transfer speed indicators for each file operation.
  • Chunk-based upload system for reliable resumable transfers.

2. Live Sending Mode

  • Live streaming to any connected device using the server as a relay.
  • Recipients can access files while they are being uploaded (streamed).
  • Pause / Resume is not supported in live mode (continuous relay).
  • Intended for testing streaming and relay behavior over HTTP.

3. QR Integration

  • QR code generation for quick access; QR displayed in both terminal and web UI.
  • Server link/URL updates when the network IP or server session changes.

4. Windows Installer

  • Includes install.ps1 that automates Node.js and package installation and prepares the app for immediate use.
  • Installer generates app.ps1, which is the recommended launcher for regular use.

Technical overview

  • Language: Node.js (no frameworks)
  • Protocol: HTTP
  • Core concepts implemented manually:
    • HTTP request parsing
    • Body parsing for form and binary uploads
    • Cookie parsing and handling
    • URL parsing and routing
    • Stream-based file I/O and chunked transfers
    • Device Identity verification.
  • Frontend: HTML5 + Vanilla JavaScript + Tailwind CSS.
  • Installer: PowerShell script (install.ps1)
  • Purpose: Educational — to implement and observe how Express-like features operate at a lower level

Installation & usage

Windows: Installation & First Run (exact procedure)

Follow these exact steps to install and launch on Windows.

  1. Donload File shifter from release page and than Extract the zip file and run install.cmd This will install Node.js and npm packages.

  2. Than a new App.bat will be created run it.

Linux: Installation & First Run

  1. Install nodejs first. Install dependencies and start. Go to file_shifter dir and open it with terminal.
    sudo apt install nodejs
    npm install
    npm start
    

How it Works

  • Follow the instruction given in terminal.
  • THe user interface is easy and user focused so you will easily find what to do.
  • THe screeshot are given here:

ScreenShots

  • Terminal

    • Screenshot From 2025-10-11 11-36-28
  • HomePage

    • image
    • Light theme:
    • image
  • Live Send

    • Selecting Device:
    • image
    • Sending Files:
      • image
    • Light theme:
      • Screenshot From 2025-10-11 11-29-16
  • Receive

  • Send To Server Direct

Licence

GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007.

Copyright (c) 2025 Usman Ghani

About

Seemlessly transfer files between your devices connected with same WIFI

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published