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

link to frontend repo

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

link to backend repo

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!.