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
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
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)