Hi! hope you are doing well future me!,
I’m well in the comfort of my home, the pandemic isn’t over yet, the cases are increasing day by day, infact today, as I am wiriting this, newly infected patients is over 6.5k. The past few weeks has been productive, I’m loving what I am doing, learning new stuff, doing a little of reversing at times, Oh snap, I forgot, my harddisk died on me, it was not fun(thank god important stuff were already on a server backed up), had to replace that with an ssd.
This post is about Rinku
Rinku is a server side download manager written in react & php.
Why - The motivation
I..
wanted to do a project in React.
recently had to create download links for many files on my server, this happened multiple times, there were certain edge cases where I had to disable a link temporarily, disable link after the intended people downloaded the stuff,…etc
needed the download log.
User Stories to fulfill
I can..
- create download link for any files in the server
- manage all download links
- get analytics of the downloaded files
- has google Recaptcha,
- Recaptcha is configurable, can be turned off/on
- get logs of download files
- have download page as seperate
Technology stack
note: fontend and backend are on different repos
FrontEnd
React
This was absolutely clear from the start, I madeup my mind to use React. The reason being I had already done a project in angular, eversince that wanted to a project in React.
Backend
PHP with Framework Written from Scratch.
I wanted a simple backend, that could be deployable anywhere, currently the most popular free hosting service provided language (atleast at the time of writing this post) is php. It’s used everywhere.
So I wanted a simple backend to work for my services, I looked up several frameworks, they had all the features that I do not need, plus add the time I need to learn those frameworks, which is a lot, mainly during development and looking for that unique bug that takes two days to figure out becasue of the framework,
I have a little bit of knowledge in the bare essentials, security that it should have, how to write configurable modules.
Thus, decided to write a framework of my own. with basic features,security and so that it is easy to add new modules/functionlaity.
Mysql
I have a lot of experience with firebase & mysql, going mysql for this one, mangodb & graphql has to wait.
Docker with Docker-Compose
I wanted this to have easy setup during development, don’t want the hassle of installing php, configuring, adding debug packages, …etc - reason for choosing docker.
End
This little project of mine took around a week to complete, though It has been on my mind for two months. Action is necessary for something to work, waiting is useless in most cases.
That is it, have a good day!.