In this article, we are going to introduce you to a project we created in Node JS and Mongo DB. It is a file transferring web app that allows you to send files to your colleagues, friends, clients, etc.
1. Upload files
You can upload any type of file (image, e-book, executable, iso), the system will NOT prevent you from uploading any certain type of file. Uploaded files are in original quality (no compression is done), and they can be deleted at any time by the uploader.
2. Create folders
To organize your files, you can create folders and upload files in that folder. For example, you can create a folder named “College data” and in that folder create further sub-folders “Assignments”, “Thesis”, “Projects” and upload relevant files in each folder separately. You can go for an infinite level of sub-folders, this project is able to handle that.
3. Shareable link (public)
You can share files via a publicly shareable link. Anyone with the link can access your file with or without creating an account. You can also remove the shareable links so they won’t be accessible to the public anymore. There is no expiry time of the shareable link, it will remain accessible as long as it is deleted by the owner.
4. Share with E-mail (private)
You can share files via E-mail address if the receiver already has an account in the system. In order to share files privately, the receiver must have a registered and verified account. Files shared via E-mail will not be accessible by any other person, even if someone tries to get them from the server directory.
5. Move files & folders
You can move files from one folder to another with all sub-folders in it. When file is moved to a new location, all publicly shareable links will lost access to that file. This is another way of removing the access of shared links.
6. Rename files & folders
The name of the file is automatically set when the file is uploaded, but you can always rename the file. There is no restriction on setting the name of the file, you can even type special characters (!@#$%^&*) in it.
You can search all files and folders uploaded by you or shared with you by others, by their name. This allows you to quickly find the files uploaded by you or shared with you by your friends or colleagues.
8. Download counts
Files shared via a public link can be downloaded by anyone if he/she has the link. They do not need to register or log in to an account to download that file. While you being logged in can see the number of times that file is downloaded.
9. Business Model
You can also make money with this project. You can allow users to upload files up to some GBs for free. After that, you can ask them to pay to upload more data. For example, you can allow users to upload up to 1 GB of files, and put the price of $1 per extra GB. I have added the Stripe and PayPal payment methods that allow you to quickly get money without integrating these payment methods for your convenience.
You just have to change the API keys for Stripe and PayPal and sit back and wait for payments. When someone makes a payment, it will automatically be added to your account and he will automatically get more data to upload. You can allocate a fixed amount from that income to increase your hosting’s hard drives. So your investment in this project will be just $20, which is the price of this project. Future investments will be received from your users.
Your files will not be accessible by any person other than you or people you have shared with. Even if someone finds the directory where you have stored all your files, he will still be unable to list or view the files.
There is no limit on volume of data uploaded in this system. You can upload as much larger file as your server allows, and you can upload as many number of files as needed. You can also create infinite level of folders and sub-folders.
The price of this project is just $20.
- A payment request will be sent to you.
- After payment is received, the source code will be sent to you.
- Paid customers can get free support.
- Paid customers can get customizations.