File Sharing Website
Current Release: V1.1 Note: This is not the original repository for this project and so the branches used during its development are not available to view
This is the repository for my file sharing site. It is a dynamic website that allows users to upload, download, and share files between one another.
The code provided allows you to run the site as a server. Currently the server is set up to run as a local host site on port 8080. In order to run the server you must follow these instructions:
- Download the repository/Clone the repository
- Run the 'npm install' command to install the required dependencies as listed in the package.json file
- Run index.js using Node.js
- Connect to the site by going to http://localhost:8080/
The website is based off of the template provided by Mark Tyers which can be found here, however all functionality beyond what is provided by the template is my own work.
If you wish to see a full log of all releases, please view the releases tab of the GitHub repository. However, you can see below the list of features outlined by the task specification, along with which version they were implemented in.
Outline of Site Specification
- Allow logged-in users to upload files to the server [Implemented in Release v0.1]
- They should be able to email a link to their friends who can use this to download the file [Implemented in Release v0.1]
- The files should not be stored in the public directory [Implemented in Release v0.1]
- The download link should include a hash string, not the file name [Implemented in Release v0.1]
- Any files should be deleted once they have been downloaded or after 3 days (whichever comes first) [Implemented in Release v0.2]
- All files should download (even if they could display in the web browser) [Implemented in Release v0.1]
- The person uploading the file can choose the username of the user who can access it [Implemented in Release v0.3]
- This username must already exist [Implemented in Release v0.3]
- Users need to log in to see a list of the files they can download [Implemented in Release v0.3]
- All files in the list should have an appropriate icon reflecting what type of file they are and include information such as the file size and the date and time the file was uploaded as well as how long before it will be deleted [Implemented in Release v0.3]