A digital platform where files can be easily accessed and downloaded remotely.
To have a system where admins can upload files that can be accessed by users online.
- A sign up and login system: This system is implemented to ensure only registered and authenticated users can access this application.
- A password resetting system: This system is implemented to enable users who forget their password to be verified and allowed to set a new password.
- Content retrieval: Users are able to see contents that have been uploded by admin on a feeds page.
- File search: Users are able to search for files using the files title and other means.
- File downloading: Users are able to download the files uploaded to the server by admin.
- File sharing: Contents can be shared via email to others for downloads.
- File uploads: Admin is able to upload files to the server, which is latter accessible to users for download online.
- Admin is also able to see the number of times a particular file is downloaded or shared.
NOTE: This project is currently hosted with limitted resources as the hosting service is free. You may experience some seconds of delays especially when it has been inactive for a long time.
To access the application as the admin, sign in with the following details:
Email: admin@fileserver.com
Password: 12345678
NOTE: Resetting password for Admin has been disabled. This project is an assignment and must be reviewed before anyone who has access can make changes to the Admin account.
Run app by first cloning this repo, git clone https://github.com/KBismark/fileserver.git
Navigate to the root director cd fileserver
If it's the first time building the app, run
npm run dep-buildto install all dependencies and also build the app at once.
Else, after all dependencies have been installed, you can build the app anytime by runningnpm run buildNOTE: Both dependencies for backend and frontend are installed when you run
npm run dep-buildYou must have built the app already before it can be ran.
To run in dev mode, use the command
npm run dev
To run built app, use the commandnpm start. TheENV_STRINGin the.envfile must be set toproductionfor app to run successfully.
The database used in this project is MongoDB. The ER below represents the two collections used for this project. The Users colection is used for storing data related to registerd users and the Files collection is used for storing uploaded files' related data.
-
Backend language: Nodejs
-
Framework: Expressjs
-
Authentication: JSON Web Token (JWT)
-
Database: MongoDB
-
Frontend: Reactjs
