An open API service indexing awesome lists of open source software.

https://github.com/yjdoc2/filestore-web-project

This is a website functioning similar to google drive, where users can store files privately, as well as create 'collections' which are public. This can also display some types of files in-browser.
https://github.com/yjdoc2/filestore-web-project

express-js file-sharing file-storage mongodb nodejs reactjs

Last synced: 6 months ago
JSON representation

This is a website functioning similar to google drive, where users can store files privately, as well as create 'collections' which are public. This can also display some types of files in-browser.

Awesome Lists containing this project

README

          

# FileStore




FileStore is a cloud file storing and sharing platform. It uses
Atlas MongoDB to store and Share Files.



This is a small scale project done using ExpressJs Backend,
ReactJs frontend Mongoose ODM,Bootstrap Css



Files can be stored in two ways : in
Personal Account, Which can be accessed only by the user
uploading it, and in Collections, which can be Shared and viewed
by others.


A single User can have 20MB of files in private , and any
collection can have Maximum of 20MB of files in it.


There are still many bugs and feature updates possible. Few of
them are :




  • The File upload does not clear itself after uploading
    files, even though there are no Files still assosiated
    with it .




  • The Collections are static, as in once created and
    uploaded, files cannot be added or removed from
    them.This was not done as the collection files are
    showed on same route for all viewers, logged in as well
    as not. The logic to check whether a collection belongs
    to current logged in user , so only creater can have
    update rights was becoming complecated.




  • The npm package 'react-file-viewer' used to display some
    file types does not scale the pages of pdf well, which
    is an internal issue of package.




  • The GridFS-Stream package used in the backend uses
    outdated drivers,and thus does not support some updated
    methods of mongoDB. A possible solution would be to
    change the package used or create a custom interface
    over MongoDB Grid interface.




  • The Backend cannot currently limit incoming files in
    uploading other than the size less than 20MB. Thus a
    user may extend the allowed space by using REST clients
    such as Postman to upload files. This may be stopped
    using cors. Currently the file size per user is checked
    and handled by frontend before upload.


## Usage

Run npm run build to compile frontend, move those files to backend folder and then start the server.