Giter Site home page Giter Site logo

fileshelter's People

Contributors

aloneik avatar culhatsker avatar

Watchers

 avatar

fileshelter's Issues

Refactor the main module

The app is about to grow bigger, but flask app module will not be able to fit all the changes without damaging readability. We may consider using a Flask feature called blueprints. They allow the programmer to split views into groups by their purpose and then combine them in the main module. This will allow us to meaningfully split the growing app.py into user_views.py and api_views.py.

But first we need to understand how to do it in idiomatic way.
Please start digging some info about "how to build idiomatic flask app" and about blueprints
Here's a wiki page to start: http://flask.pocoo.org/docs/1.0/blueprints

App lacks context menu for files

You can't delete the file after #15 was merged. Need to add a good way to delete achive a file - a context menu.

I think we should not implement file deletion, because it's not what important files are made for.
We should insted implement file archiving - moving them into special directory.

No current directory label

You only can see the current directory in the browser's url bar. It is not convenient.
Why not add a label that says what the current directory is.

Sort files before displaying

If I add a bunch of files and create a directory, it's lost in betweed all the files in the directory.

We should sort the files by their type (file or directory, not extention) and then by their names.

Need to add .dockerignore file

Docker pulls .pytest_cache and pycache directories into container and it interfere with the pytest inside the container causing it to fail.

Can we add a .dockerignore file with rules as per documentation that will prevent these directories from appearing in the container?

No readme

There's no readme in this project. How can one figure out how to build and run it?

Why not add feature for backing up all files on remote servers or services?

The app is supposed to keep all files in safety, but how can we achieve this without backing up these files on different/remote storages?

What about implementing an automatic backing up of all uploaded files? App may upload it into some Amazon services like S3 or BackBlaze B2 cloud or we can just secure copy (scp) files to another machine.

Ideally it should be configurable on settings page. Also the progress and status of this process must be visible and controlled by the user. To achieve this, we need to view this backing up process as a list of tasks with statuses etc. A specific page can be created to display the tasks.

The app doesn't encrypt files but it was supposed to

The app was supposed to encrypt/decrypt all uploaded/downloaded files on the go, but now it's just keeping them as is in the directory nearby. Can we fix this?

This code sample may show how we can achieve this:

from Crypto.Hash import SHA256
from Crypto.Cipher import AES
from Crypto import Random

def get_key_for_password(password):
    hashobj = SHA256.new()
    hashobj.update(password)
    return hashobj.digest()

def encode_document(password, data):
    key = get_key_for_password(password)
    iv = Random.new().read(AES.block_size)
    cipher = AES.new(key, AES.MODE_CFB, iv)
    return b'AES' + iv + cipher.encrypt(data)

def decode_document(password, data):
    assert(data.startswith(b'AES'))
    data = data[3:]
    key = get_key_for_password(password)
    iv = data[:AES.block_size]
    cipher = AES.new(key, AES.MODE_CFB, iv)
    return cipher.decrypt(data[AES.block_size:])

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.