Download manager with temporary links
Budget: $30 – $250 USD
Hello everybody.
I need a web application that enables users to download files via temporary links from an Apache server. These files are pretty small binaries and they all have the same extension. The files are of two types and should be stored in two separate directories, one for each type. Let's call these directories 'type0' and 'type1'. In turn these directories should reside in a directory called 'vault'.
The files in the 'type0' directory are named as follows:
aaaaaa_bbbbbbbbb_SrNr_n[nn].hex
The files in the 'type1' directory are named as follows:
aaaaaa_ccc_SrNr_n[nn].hex
In short, the application should show a form with the following elements:
[ ] a drop-down list with the label "Type :" and two values, 'type0' and 'type1', with 'type0' being the default.
[ ] an edit field with the label "Serial number :"
[ ] a search button
Layout
The entire page content should be placed in a compact imaginary table which, in turn, should be placed in a container. This container should be centered horizontally and vertically in the middle of the screen or window.
Functionality
Upon pressing the 'Search' button, the application should check the content of the directory corresponding to the drop drop-down list selection for a file whose name contains the precise serial number entered in the edit field.
If the file was found:
[ ] the following new line should appear under the one with the edit field:
> label to the left: 'Download URL :'
> a read-only edit field to the right with the full temporary download URL of the file
> a copy-to-clipboard icon to the right read-only edit field
Note: This is similar to what can be seen in the GitHub popup that appears after clicking the Code button in the Code section of a project
[ ] the button label with the magnifying glass should change to the download symbol (usually a downward pointing arrow) and the Search tooltip should change to 'Download'
[ ] the form should display a second button with the reset symbol (usually a circular arrow) and the label 'Reset'. This second button should be placed at the right of the 'Download' button.
[ ] the user should able to instantly download the file by pressing the 'Download' button
[ ] the user should be able to save the download link
[ ] if the user presses the 'Download' or the 'Reset' buttons, the form should return to its initial state
[ ] pasting the saved URL in any browser window should instantly prompt the download of the associated file for as long as that URL is still valid
If the file was not found:
[ ] the following new text block should appear under the one with the edit field (it can bleed into the second column, if needed):
> text in yellow: The serial number <actual_serial_number_entered> is unknown.
A download link should be valid until a time which can be preset globally in the application by means of a single variable. This variable should have the default value of midnight (00:00). In other words, download links should be valid only until midnight local time.
Download links should contain some sort of a random string made up of a mix of 10 small letters and numbers.
The original file name should be preserved.
The content of the 'vault', 'type0' and 'type1' directories should never be directly accessible.
The goal of the application is to prevent users from listing the content of the any of these directories at all times. It should only allow temporary access to certain individual files as long as the user inputs their valid serial numbers in the form.
Technology stack
PHP 7 and JavaScript. Please use the latest Bootstrap or a similar modern library. Please do not use Node.js or jQuery. The application should work on Ubuntu 18 or higher and on the latest Google Chrome and Mozilla Firefox browsers. Please use OOP, as much as possible.
I need to use certain colors and fonts and a bit of animation.
Please note the attached full project description.
Thank you for your help.
I need a web application that enables users to download files via temporary links from an Apache server. These files are pretty small binaries and they all have the same extension. The files are of two types and should be stored in two separate directories, one for each type. Let's call these directories 'type0' and 'type1'. In turn these directories should reside in a directory called 'vault'.
The files in the 'type0' directory are named as follows:
aaaaaa_bbbbbbbbb_SrNr_n[nn].hex
The files in the 'type1' directory are named as follows:
aaaaaa_ccc_SrNr_n[nn].hex
In short, the application should show a form with the following elements:
[ ] a drop-down list with the label "Type :" and two values, 'type0' and 'type1', with 'type0' being the default.
[ ] an edit field with the label "Serial number :"
[ ] a search button
Layout
The entire page content should be placed in a compact imaginary table which, in turn, should be placed in a container. This container should be centered horizontally and vertically in the middle of the screen or window.
Functionality
Upon pressing the 'Search' button, the application should check the content of the directory corresponding to the drop drop-down list selection for a file whose name contains the precise serial number entered in the edit field.
If the file was found:
[ ] the following new line should appear under the one with the edit field:
> label to the left: 'Download URL :'
> a read-only edit field to the right with the full temporary download URL of the file
> a copy-to-clipboard icon to the right read-only edit field
Note: This is similar to what can be seen in the GitHub popup that appears after clicking the Code button in the Code section of a project
[ ] the button label with the magnifying glass should change to the download symbol (usually a downward pointing arrow) and the Search tooltip should change to 'Download'
[ ] the form should display a second button with the reset symbol (usually a circular arrow) and the label 'Reset'. This second button should be placed at the right of the 'Download' button.
[ ] the user should able to instantly download the file by pressing the 'Download' button
[ ] the user should be able to save the download link
[ ] if the user presses the 'Download' or the 'Reset' buttons, the form should return to its initial state
[ ] pasting the saved URL in any browser window should instantly prompt the download of the associated file for as long as that URL is still valid
If the file was not found:
[ ] the following new text block should appear under the one with the edit field (it can bleed into the second column, if needed):
> text in yellow: The serial number <actual_serial_number_entered> is unknown.
A download link should be valid until a time which can be preset globally in the application by means of a single variable. This variable should have the default value of midnight (00:00). In other words, download links should be valid only until midnight local time.
Download links should contain some sort of a random string made up of a mix of 10 small letters and numbers.
The original file name should be preserved.
The content of the 'vault', 'type0' and 'type1' directories should never be directly accessible.
The goal of the application is to prevent users from listing the content of the any of these directories at all times. It should only allow temporary access to certain individual files as long as the user inputs their valid serial numbers in the form.
Technology stack
PHP 7 and JavaScript. Please use the latest Bootstrap or a similar modern library. Please do not use Node.js or jQuery. The application should work on Ubuntu 18 or higher and on the latest Google Chrome and Mozilla Firefox browsers. Please use OOP, as much as possible.
I need to use certain colors and fonts and a bit of animation.
Please note the attached full project description.
Thank you for your help.