DEV Community

Jaanchal1
Jaanchal1

Posted on

File Manager - A free file sharing platform for all

What I built

I built a file manager for people to share files freely on the internet

Features

  • Allows new users to signup so that they can share files
  • Allows users to upload files & generate a public shareable link
  • Allows the user to control whether an uploaded file is public or not
  • Allows users to preview the files before downloading them

Category Submission:

Integration Innovators

App Link

http://172.104.50.24
Test Credentials:
username: test
password: test@123

Screenshots

Dashboard
Dashboard

Public File Preview - Audio
Public File Preview - Audio

Public File Preview - PDF
Public File Preview - PDF

Public File Preview - Text
Public File Preview - Text

Public File Preview - Video
Public File Preview - Video

Login
Login

Signup
Signup

Description

File manager is an online free-to-use platform where users can store & share their files with each other. The files can be either public or private as per the user's needs. The backend is built using Typescript & frontend uses Bootstrap & Edge templating.

Link to Source Code

https://github.com/jaanchal1/file-manager

Permissive License

MIT

Background

Recently, I've been looking for a solution to share my files online but all the sharers were either paid or slow or had some kind of time restriction. So, I decided to build this file manager so that more people like me can share files with each other online for free without any worry.

How I built it

I built this using the AdonisJS framework for the backend & bootstrap for the frontend along with Linode services. I used the following Linode services:

  • Object Storage: Linode's object storage is S3 compatible so I used it to store all the files that were uploaded by users. It was very easy to set up & use due to Linode's documentation. It was my first time using any sort of object storage and I got to learn how S3 & object storage in general work due to this
  • Managed Postgres DB: Linode provides a managed PostgreSQL database which means that I don't have to configure it much and still get the industry standard database. This was very useful to me as I'm still learning about managing databases and saved me a lot of trouble along the way.
  • Linode: I created a linode using this guide & installed node.js & nginx on it. This was my first time setting up a virtual machine from scratch and Linode's guides helped me out a lot on this journey.
  • Linode Firewalls: Originally, I did not know anything about having a firewall on the Linode machine but reading Linode's guides gave me an idea about them & helped me understand their usefulness. Using Linode's firewall I blocked all ports except for 22 & 80 on my machine which helped in securing it.

Overall, I gained many new skills & knowledge along the way due to Linode's free 100$ credits and this hackathon. My next step would be to figure out how to make better use of the free credits & keep on improving my skills.

Future Scope

  • Allow users more control over who can access their files
  • Store statistics regarding page views for public files
  • Make APIs for uploading files so that this can be turned into a SaaS
  • Better UI for users
  • Add CDN for retrieving files

Top comments (0)