Git Product home page Git Product logo

flask-fileexplorer's Introduction

WiFile

A file explorer that works over local area network (Wi-Fi/Ethernet) using Flask server. You can explore a computer's complete directory and download any file. Moreover, it also lets you stream videos or audio files if your browser supports it.

New Features ๐ŸŽ‰

  • Significant performance improvements - incorporated jinja for dynamic output generation ๐Ÿ”ฅ
  • Added QR Code Sharing - share files using QR codes ๐Ÿ“ฒ
  • Folder Breadcrumbs - easily navigate back and forth between folders ๐Ÿž

Description

Server works on,

  • Windows
  • Mac
  • Linux (Not Tested)

It is written in Python and tested it on Mac and Windows.

Frameworks

  • Flask (Server)
  • Bootstrap 4

Flask has been used to run the server and serve up the html pages. Meanwhile, Bootstrap has been used to show the Folders and the Files. To open any folder, just click on it and to download/stream any file, just click on it.

Snapshots

Grid Mode Demo

List Mode Demo

How to Run

Clone this repository by using,

git clone https://github.com/reallyrehan/flask-fileexplorer.git

Make sure you have flask installed. You can use the following command to install flask,

pip install -r requirements.txt

Now, open terminal/command prompt in the flask-fileexplorer directory and run the setup.py file by using the following command,

python setup.py

You will have to configure the config.json file with your paths,

Example for Mac,

"Favorites":    ["Users/rehanahmed/Downloads","Users/rehanahmed/Documents"],

Example for Windows,

"Favorites":    ["C://Users//Administrator//Documents","C://Users//Administrator//Downloads"],

This should start the Flask Server in your terminal window. By default, it is run on port 80. You can access it by going to,

  • localhost (on your server's browser)
  • (IP Address of your Server) (from any other browser on the same network)

For additional features,

  • Password Protection: Set a password in the config.json file.
  • Hiding Folders: Add paths of folders to hide in the config.json file as a list.
  • Favorite Folders: Add paths to add as favorites in the config.json file as a list.
  • Share only Specific Folder: Give a path to the Root Directory or leave it as default '/' to share the complete computer directory.

Issues

  • Change File icons
  • Implement Video Streaming Works Already
  • Implement Back/Forward Button
  • Upload Button
  • Add Upload to specific folders
  • Add Download Folder option (Zip folder)
  • Add Security Features Added Hiding ()
  • change to setup.py
  • Remove inline css to separate css file Partially
  • Add Favorites
  • Fix Mobile CSS
  • File drop to upload
  • Share only specific folder
  • Take path from command line
  • Add How to find IP Address (ISSUE)
  • Test on Linux
  • Test on Windows
  • Test on Mac
  • Add Error Handling
  • Add Login Page Current Directory and Password
  • Add Hidden Validation
  • Add Favorites Validation
  • Add Upload Validation
  • ISSUE: Favorites doesnt work with Limited Directory Usage
  • Add Breadcrumb path
  • Add a proper Config file for all configrations hidden, favorites, login
  • Add Exit Button
  • Describe how to get your own IP address for Mac, Windows, Linux
  • Add username and create a log file to track accesses and each executed instruction
  • Add option for selecting available Drives
  • Add requirements.txt
  • Better Security
  • QR Code File Download
  • Performance Improvement by converting Python directory+file code to Jinja

Support Me

Like my work? Click on the button below and help me keep caffeinated! โ˜•๏ธ ๐Ÿ™๐Ÿป

Buy Me A Coffee

flask-fileexplorer's People

Contributors

reallyrehan avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.